lauho schrieb:
Wenn man wissen will, ob ein bestimmtes Kommando Eingaben über die Standardeingabe annimmt oder nicht, wo in der Befehlsdokumentation kann man dann Angaben darüber finden?
Beispiel: ls nimmt ja keine Eingaben über die Standardeingabe an. In der manpage von ls finde ich aber keinen Hinweis dazu.
Das ergibt sich aber aus der Natur des Kommandos. Und bei Kommandos, die von der Standardeingabe lesen, steht das normalerweise auf der Manpage.
Wenn Du es austesten willst, kannst Du mittels strace
nachschauen, ob der Prozess von Dateideskriptor 0 liest (das ist die Standardeingabe). Du müsstest natürlich alle möglichen Code-Pfade abdecken, was ohne Kenntnis des Programms schwierig ist.
Ein anderer Test wäre, die Standardeingabe zu schließen und zu schauen, was passiert:
$ wc <&-
wc: failed to reopen ‘stdin’ with mode ‘rb’: Bad file descriptor
$ sed -ne p <&-
Segmentation fault (core dumped)
Hübsch! 😬