Как написать файл для аргумента файла программы в одну строку

У меня есть программа, которая может принять в качестве аргумента файл, полный команд и запустить их:

$ <program> <filename>

Это то, что я работаю до сих пор:

$ cat <filename>
<command>
$ <program> <filename>
<output indicating the command has been executed correctly>

Однако мне нужно всего лишь запустить одну команду в этом неинтерактивном режиме, и я не хочу, чтобы дополнительный файл сидел без дела только с одной командой. Я попытался передать вывод echo:

$ <program> | echo "<command>"

но это только дает вывод:

<command>

2 ответа

Решение

Я понял, что было не так; моя труба была задом наперед. Мне нужно было сделать:

$ echo "<command>" | <program>
<output indicating the command has been executed correctly>

Примечание для себя: трубы текут слева направо.

Нечто подобное может сработать...

check.sh

#!/bin/bash
if [ $? = 0 ] ; then
  echo "Ok"
else
  echo "Error"
fi

В консоли:

# command | check.sh

Пример:

# ls | ./check.sh 
Ok
Другие вопросы по тегам