如何在一行中为程序的文件参数写入文件

如何在一行中为程序的文件参数写入文件

我有一个程序,它可以接受一个包含大量命令的文件作为参数并运行它们:

$ <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

相关内容