5

我有一个名为“ 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 切掉了前面的空格,所以我看不出它有什么不同。上面的第一种方法确实有效。

4

3 回答 3

9

将整个论点放在双引号中:

grep "string" "$x.sh"
于 2010-03-30T06:53:01.357 回答
2

在你的脚本中使用它。

grep "string" "${x}.sh"
于 2010-03-30T06:54:57.917 回答
0

另一种方式

grep "string" "${x}.sh"
于 2010-03-30T06:57:03.683 回答