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、macos10.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 に答える