我有一个名为“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 切掉了前面的空格所以我不能说这是不同的。上面的第一种方法确实有效。
最佳答案
将整个参数放在双引号中:
grep "string" "$x.sh"
关于bash - 由于用空格扩展变量导致的 Grep 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2543309/