まず、このスクリプトを見てください。
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
コマンドではありません。cat loc >> test.txt
を使用してtext.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
または、一段階で試してみてください。
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