"cat"コマンドをパイプラインターゲットとして使用できますか?

ずっと前に私はbashプログラミングをしましたが、しばらくして別のプログラミング言語に切り替えました。私の仕事はbashスクリプトを見なければなりませんが、私が理解しようとしているコードを見つけました。

for var in $(echo $ENV_VARS | cat my_env_vars.txt);$var エクスポートが完了しました。

"cat"コマンドがパイプラインの対象となる例があまり見つからないようであるため、echoコマンドの結果を"cat"コマンドの出力に配管する元の作者の意図を理解できません。誰かが何が起こっているのかを説明するのに役立ちますか?

ENV_VARSを設定してコードを実行してみましたが、「for」ループ内では「my_env_vars.txt」ファイルの内容のみが評価されることがわかりました。それでは、ここで「エコ」結果をパイピングすることはどういう意味ですか?

ベストアンサー1

努力する:

echo $ENV_VARS | cat - my_env_vars.txt

as-最初の引数は、標準入力catを最初のファイルに読み込み(そしてデータを標準出力に書き込む)、コマンドに表示される順序でコマンドラインからファイル名を読み取るように指示します(そして標準出力に書き込みます)。 )ライン。

パラメータは-後で表示されることがあります。my_env_vars.txt(ただし、コマンドラインで複数のファイル名を指定すると、catファイルを複数回開いて読み取ることができますが、標準入力()の場合はそうではありません-。)

おすすめ記事