したがって、これは単純なコードです。
(echo "Some text to prepend"; cat gero.txt) > file.txt
このコードのメカニズムを実際に理解することはできません。したがって、デフォルトではgero.txtはすでに存在するファイルであり、「前に追加するテキスト」+ gero.txtを使用して新しいfile.txtを作成します。私が得なかったのは括弧内の部分です。パイプのような明白な演算子なしでecho出力をcatにどのようにリダイレクトしますか|
?
答え1
一連のコマンドを実行するときインタラクティブシェルなど
echo xxx; cat file; ls; echo yyy
その後、すべてが継続的に実行され、出力が端末に送信されます。
ただし、角かっこ内でこれらのコマンドを実行すると、()
新しいコマンドが表示されます。非対話型シェルが作成され、すべてがその中で実行されます。これで、この隠しサブシェルの出力全体をファイルに>file.txt
リダイレクトします。()
答え2
シェルは次の3つの部分でコマンドラインを取得します。
(echo ...
)>
file.txt
パート#1の(標準)出力(stderr出力ではありません)は、パート#2によってパート#3に指定されたファイルにリダイレクトされます。最初の部分の括弧は、リダイレクト演算子のすべての出力をグループ化します>
。