まずこのスクリプトを見てください:
touch test.txt
touch loc
echo "result1" > loc
loc >> test.txt
echo "result2" > loc
loc >> test.txt
rm loc
2 つのファイルを作成します。そのうちの 1 つはloc
一時的なもので、これに書き込もうとすると次のエラー メッセージが表示されます。
5: script.sh: loc: not found
8: script.sh: loc: not found
どうすれば動作させることができますか?
答え1
loc
はコマンドではありません。text.txtcat loc >> test.txt
に追加するには を使用する必要があります。そうでない場合は、一時ファイルを完全に回避することもできます。
echo "result1" >> test.txt
echo "result2" >> test.txt
注意、touch test.txt
これも役に立たないようです。
答え2
これによりtest.txtが作成されます
echo "result1" | tee -a test.txt
echo "result2" | tee -a test.txt
またはこれを1ステップで使用
echo "result1" && echo "result2" | tee -a test.txt
答え3
リダイレクト演算子は、入力側として文字列または文字のストリーム、反対側としてファイルを想定しています。そのため、cat
コマンドを使用して最初にファイルを読み取り、次にストリーム文字を出力ファイルにリダイレクトする必要があります。
touch test.txt
touch loc
echo "result1" > loc
cat loc >> test.txt
echo "result2" > loc
cat loc >> test.txt
rm loc