私は現在のディレクトリとすべてのサブdirecotiresを移動し、相続人.SQLあいまいなリダイレクト
にコード
HEADER="--SQL HEADER"
for f in 'find . -name *.sql';
do
echo $f
echo -e $HEADER > $f.tmp;
FNAME=${f//\//_/};
echo -e "\n\n--MORE ANNOTATIONS ${FNAME%.*}:1" >> $f.tmp;
cat $f >> $f.tmp;
mv $f.tmp $f;
rm $f.tmp
done;
イムaのスニペットを終了し、各ファイルにいくつかの注釈を追加しようとしていますbashのでは初心者ので、私はエラーの一部を考える私が得るループ と検索文の原因である可能性があります取得しますが、これは誤りであるイム
find . -name X.sql A.sql W.sql E.sql S.sql
./annotate.sh: line 6: $f.tmp: ambiguous redirect
./annotate.sh: line 8: $f.tmp: ambiguous redirect
./annotate.sh: line 9: $f.tmp: ambiguous redirect
mv: invalid option -- n
Try `mv --help' for more information.
rm: invalid option -- n
Try `rm --help' for more information.
任意のヘルプは大だろうapprec =)
+1との混同を避ける(とボーナスとしてネスティングが可能)にする、それは '$(コマンド)'形式の代わりに、バッククォート変種 '\'コマンドを使用することをお勧めします\ ''。 –
いいえ... 'for'とバッククォートを使ってファイルを反復することはお勧めしません(指摘したように、' $() 'を使います)。あなたは最も直ちに問題を指摘したので、-1ではありません。 – ormaaj
正解、これを指摘してくれてありがとう。シェルスクリプトを書く方法を教えようとするのではなく、単にその質問に答えるだけでした。 – theglauber