スペースで変数を拡張するためのGREPエラー
-
23-09-2019 - |
質問
私は「」というファイルを持っています」physics 1b.sh
「。バッシュで、私が試してみたら
x="physics 1b"
grep "string" "$x".sh
グレップは不平を言う:
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
内容を確認するために、バッシュは正面のスペースを切り落としたので、それが違うとは言えませんでした。上記の最初の方法は実際に機能します。
解決
引数全体を二重引用符に入れます。
grep "string" "$x.sh"
他のヒント
これをスクリプトで使用してください。
grep "string" "${x}.sh"
別の方法
grep "string" "${x}.sh"
所属していません StackOverflow