我有一个名为“physics 1b.sh
”的文件。在bash中,如果我尝试
x="physics 1b"
grep "string" "$x".sh
grep抱怨:
grep: physics 1b: No such file or directory.
但是,当我这样做时
grep "string" physics\ 1b.sh
工作正常。所以我猜这个问题与变量没有被扩展以包含grep需要识别空间的反斜杠有关。我如何让它工作?
使用bash 3.2,mac os 10.6。
编辑:
没关系,问题是x被设置为" physics 1b"
,但当我echo $x
检查内容时,bash切断了前面的空格,所以我无法分辨它是不同的。上面的第一种方式确实有效。
答案 0 :(得分:8)
将整个参数放在双引号中:
grep "string" "$x.sh"
答案 1 :(得分:2)
在你的剧本中使用它。
grep "string" "${x}.sh"
答案 2 :(得分:0)
另一种方式
grep "string" "${x}.sh"