【发布时间】:2011-02-02 08:28:04
【问题描述】:
我有一个名为“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的错误中'`physics 1b`'前面有一个空格;你确定它没有在文件名的末尾提到 .sh 吗?
标签: bash grep double quotes variable-expansion