我有一个循环,我想在诸如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