我有一个程序,它可以接受一个包含大量命令的文件作为参数并运行它们:
$ <program> <filename>
这是我迄今为止所做的工作:
$ cat <filename>
<command>
$ <program> <filename>
<output indicating the command has been executed correctly>
但是,我只需要在这种非交互模式下运行一个命令,并且不希望有一个只包含一个命令的额外文件。我尝试通过管道传输 echo 的输出:
$ <program> | echo "<command>"
但这只给出输出:
<command>
答案1
我弄清楚了问题出在哪里;我的管道装反了。我需要做:
$ echo "<command>" | <program>
<output indicating the command has been executed correctly>
提醒自己:管道从左到右流动。
答案2
类似这样的事情可能会有用......
检查文件
#!/bin/bash
if [ $? = 0 ] ; then
echo "Ok"
else
echo "Error"
fi
在控制台中:
# command | check.sh
例子:
# ls | ./check.sh
Ok