bash脚本和管道
问题描述:
我有下面的内容:bash脚本和管道
for VAR
do
echo file found $VAR
done
我要的是它打印所有包含扩展名为.png文件。我期望以下命令行工作,但它不。为什么?
ls *.png | myscript.sh
或
./myscript.sh < `ls *.png`
答
读取标准输入脚本应该是这样的:
while read line; do
echo file found $line
done
+0
编辑删除括号:原始答案将不起作用,因为括号会导致读取命令发生在子外壳中,因此当子shell退出时变量将消失。 – 2012-03-07 19:10:35
循环的conten变量的ts与将命令的结果输送到另一个命令不同。 'ls'的结果将作为myscript.sh的标准输入,而不是变量。 – 2012-03-07 18:37:38
你将如何修改我的脚本来循环标准输入? – Pomario 2012-03-07 18:44:36
第二次调用语法错误:它将找到的第一个文件的内容重定向到您的脚本。 – Basilevs 2012-03-07 18:48:30