Как написать файл для аргумента файла программы в одну строку
У меня есть программа, которая может принять в качестве аргумента файл, полный команд и запустить их:
$ <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