我有一个for循环我想在bash中运行,如:
for i in user_* do; cat $i | ./fetch_contact.php ; done;
总是给出错误,如
-bash:意外令牌“完成”附近的语法错误
我认为它与管道有关,但我尝试添加的任何内容(括号等)都不能充分包裹管道。你如何在这样的命令中使用管道?
答案 0 :(得分:4)
在Bash,do is a command。此外,它是for
而不是foreach
。这是修复:
for i in user_*; do cat $i | ./fetch_contact.php; done;
答案 1 :(得分:1)
结果得到分号和其他一切正确使整个管道事情没有实际意义。
for i in user_*; do cat $i | ./fetch_contact.php; done;
答案 2 :(得分:1)
为什么要循环?
cat user_* | ./fetch_contact.php
答案 3 :(得分:0)
foreach i in user_*; do cat $i | ./fetch_contact.php ; done;
分号应该在do
之前,而不是之后。
答案 4 :(得分:0)
无需cat
:
for i in user_* ; do ./fetch_contact.php < "$i" ; done
答案 5 :(得分:0)
这里有一些检查
for file in user_*
do
if [ -f "$file" ];then
./fetch_contact.php < "$file"
fi
done