0
私はディレクトリツリーを通してgrepを行い、grep出力のパスを保存できるシェルスクリプトを作成しました。スクリプトコマンドへのBash引数の一重引用符の保存(再構築?)
#!/bin/bash
# findjs.sh
# Given a word or argument, greps javascript files from one dir down to the 8th dir down,
# as in: */*.js */*/*.js ... */*/*/*/*/*/*.js
f="*/*.js"
for p in {1..8}
do
echo 'Searching '"$f"
grep -in $1 $f;
f="*/"$f
done
は非常によく動作します: それはこのように始まりました。問題は、検索語として複数単語の文字列を送信したい場合です。これはOKです:
./findjs.sh aword /var/local/somedir
これではありません。
./findjs.sh 'the message' /var/local/somedir
バッシュは、私が試してみて、単一引用符で$ 1ラップするあらゆる種類のものを試してみました
grep -in the message /var/local/somedir
にはgrepラインをデボルブ は次のとおりです。
escaped="'\''"
t=$escaped$1$escaped
または
grep -in $escaped$1$escaped $fp;
と単一引用符、二重引用符で、などなどが、単一引用符は毎回消えます。
私には何が欠けていますか?
をうまく動作するはずですそしてそうそれはありません。明らかに、明らかに逃した。 –