我試圖去當前目錄和所有子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;
IM A的片段每個文件初學者在打擊,所以我覺得有些錯誤的即時得到可能是由於與環 查找聲明,但這是錯誤我得到
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.
任何幫助將不勝讚賞=)
+1,避免混淆(並允許嵌套作爲獎金),這是更好地使用'$(命令)'的形式,而不是反引號變種'\'命令\ ''。 – 2012-04-19 19:28:19
不好...不要推薦使用'for'和反引號來迭代文件(正如所指出的,使用'$()')。不會-1,因爲你確實指出了最直接的問題。 – ormaaj 2012-04-19 21:40:29
正確,謝謝你指出這一點。我只是回答這個問題,而不是試圖教導如何編寫shell腳本。 – theglauber 2012-04-19 21:46:29