<<<をリダイレクトすることについて疑問に思いますbash
。内容が仮想ファイルにあるように、次のチェーンを前のコマンドにリダイレクトすることがわかります。はい
$ cut -d. -f1 <<< A.B
A
$ cut -d. -f1 <<< 'A.B
> C.D'
A
C
しかし、何度も使用するとどうなるかわかりません。はい
$ cut -d. -f1 <<< A.B <<< C.D
C
私は次のような結果を期待しました:
A
C
シェルが最後のリダイレクトだけを考慮するのはなぜですか?ファイルにダミーラインを追加するには?ファイルをインポートcommand
して処理するために、次の例のようなことをしたいと思います。virtual line
my_file
command <<< "virtual line" my_file
ノートbash
:バージョンを使用しています4.4.12(1)-release (x86_64-pc-linux-gnu)
。
ベストアンサー1
<<<
標準入力をリダイレクトします。 stdinをリダイレクトして再度リダイレクトすると、最初のリダイレクトが失われます。
コマンドに「process stdin」を表す方法がある場合(たとえば、forがcat
ダッシュの場合)、次のようにコマンドの前に行を追加できます。
cat - input_file <<< 'virtual line'