Eu descobri o que estava errado; meu cachimbo estava para trás. Eu precisava fazer:
$ echo "<command>" | <program>
<output indicating the command has been executed correctly>
Nota para si: os canos fluem da esquerda para a direita.
Eu tenho um programa que pode aceitar, como argumento, um arquivo cheio de comandos e executá-los:
$ <program> <filename>
Isso é o que eu tenho trabalhado até agora:
$ cat <filename>
<command>
$ <program> <filename>
<output indicating the command has been executed correctly>
No entanto, só preciso executar um comando neste modo não interativo e não quero um arquivo extra com apenas um comando. Eu tentei canalizar a saída do eco:
$ <program> | echo "<command>"
mas isso só dá a saída:
<command>
Eu descobri o que estava errado; meu cachimbo estava para trás. Eu precisava fazer:
$ echo "<command>" | <program>
<output indicating the command has been executed correctly>
Nota para si: os canos fluem da esquerda para a direita.
Algo assim pode funcionar ...
check.sh
#!/bin/bash
if [ $? = 0 ] ; then
echo "Ok"
else
echo "Error"
fi
No console:
# command | check.sh
Exemplo:
# ls | ./check.sh
Ok