GitBash脚本传含空格time参数时grep报错,直接命令正常求助
问题解决
报错原因
脚本里grep -i $time的$time未加引号,当传入带空格的参数'02:00:00 PM'时,Shell会把它拆成02:00:00和PM两个独立参数。grep会将第一个参数当作搜索关键词,第二个参数当作要读取的文件,因此抛出grep: pm: No such file or directory的错误。
修改后的脚本
给变量$time加上双引号,确保带空格的参数被当作一个整体传递:
date=$1 time=$2 cat "${date}_Dealer_schedule.txt" | awk -F' ' '{print}' | grep -i "$time"
可选优化(仍符合工具要求)
awk -F' ' '{print}'的作用和直接cat文件完全一致,可以简化脚本,同时给$date也加上引号避免潜在的特殊字符问题:
date=$1 time=$2 grep -i "$time" "${date}_Dealer_schedule.txt"
验证
执行修改后的脚本:
sh roulette_dealer_finder_by_time.sh 0310 '02:00:00 PM'
即可得到期望输出:02:00:00 PM Chyna Mercado Billy Jones Cleveland Hanna
内容的提问来源于stack exchange,提问作者TTG
相关产品推荐
相关产品推荐

