sh スクリプトで一時ファイルが見つかりません。

sh スクリプトで一時ファイルが見つかりません。

まず、このスクリプトを見てください。

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

関連情報