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はコマンドではありません。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

関連情報