我有一個循環,我想在諸如bash運行使用管道:如何在foreach語句
for i in user_* do; cat $i | ./fetch_contact.php ; done;
總是給喜歡
-bash錯誤:近意外的語法錯誤令牌'完成'
我認爲它與管道有關,但是我沒有嘗試添加(括號等)來充分包裹管道。你如何在這樣的命令中使用管道?
我有一個循環,我想在諸如bash運行使用管道:如何在foreach語句
for i in user_* do; cat $i | ./fetch_contact.php ; done;
總是給喜歡
-bash錯誤:近意外的語法錯誤令牌'完成'
我認爲它與管道有關,但是我沒有嘗試添加(括號等)來充分包裹管道。你如何在這樣的命令中使用管道?
在Bash中,do is a command。另外,它不是foreach
。這裏是修復:
for i in user_*; do cat $i | ./fetch_contact.php; done;
foreach i in user_*; do cat $i | ./fetch_contact.php ; done;
分號do
之前應該去,而不是之後。
原來得到分號和其他所有東西都使得整個管道都沒有實際意義。
for i in user_*; do cat $i | ./fetch_contact.php; done;
爲什麼循環?
cat user_* | ./fetch_contact.php
無需cat
:
for i in user_* ; do ./fetch_contact.php < "$i" ; done
這裏有一個與一些檢查
for file in user_*
do
if [ -f "$file" ];then
./fetch_contact.php < "$file"
fi
done
因爲這樣可以將所有的文件,並將這些資料傳送到腳本之前,這可能不是什麼OP想。 – 2010-03-08 23:57:55
如果OP運行它,就像他在他的問題中發佈的內容一樣,而不是將所有內容都用於php腳本,就相當於使用for循環。 – ghostdog74 2010-03-09 00:21:28