2010-03-30 108 views
3

我有一個名爲「physics 1b.sh」的文件。
在bash,如果我嘗試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檢查內容,慶典砍掉在前面的空間,所以我不能告訴,這是不同的。上面的第一種方法實際上起作用

+0

注意,存在在從grep的錯誤 ''物理1b'' 前面的空間;你確定它沒有在文件名的末尾提到.sh? – 2010-03-30 07:12:30

+0

嗯,我不確定。 – anoda9 2010-03-31 00:18:26

回答

7

放入雙引號整個參數:在你的腳本

grep "string" "$x.sh" 
+0

即使沒有對問題進行編輯,這應該不是必需的,但它通常是解決問題的最佳方法。 – 2010-03-30 07:09:33

1

使用本。

grep "string" "${x}.sh" 
0

另一種方式

grep "string" "${x}.sh"