パイプラインデータを生成するコマンドのインポート

パイプラインデータを生成するコマンドのインポート

現在のコマンドが実行される前に実行されたコマンドを説明する文字列にアクセスする方法を知りたいです。

たとえば、次のように実行すると:

ls | myscripthere

私は "ls"コマンドがSTDINを介して得られた出力を生成するコマンドであることがわかります。これを行う方法はありますか?

ありがとう

ベストアンサー1

パイプの受信側プログラムは、実際に入ってくるデータがどこから来るのかを知る方法がありません。あなたの例を使用して:

$ ls | myscript

標準出力はls標準入力にリダイレクトされますmyscript。ただし、これは以下とまったく区別できません。

$ ls > datafile
$ myscript < datafile

または

$ ls > datafile
$ cat datafile | myscript

または

$ wget -o - https://www.example.com/some/file/that/resembles/the/output/of/ls | myscript

または

$ ls | sed '/secrethiddenfile/d' | myscript

でも

$ cat - | myscript

馬は馬だけです。

おすすめ記事