Temporäre Datei im SH-Skript nicht gefunden

Temporäre Datei im SH-Skript nicht gefunden

Schauen Sie sich zunächst dieses Skript an:

touch test.txt
touch loc

echo "result1" > loc
loc >> test.txt

echo "result2" > loc
loc >> test.txt

rm loc

Ich erstelle zwei Dateien. Eine davon locist temporär und ich versuche, darin zu schreiben, erhalte jedoch die folgende Fehlermeldung:

5: script.sh: loc: not found
8: script.sh: loc: not found

Wie kann ich es zum Laufen bringen?

Antwort1

locist kein Befehl. Sie müssen cat loc >> test.txtes an text.txt anhängen. Andernfalls können Sie die temporäre Datei auch ganz vermeiden:

echo "result1" >> test.txt
echo "result2" >> test.txt

Beachten Sie, touch test.txtscheint auch nutzlos.

Antwort2

Dadurch wird die Datei test.txt erstellt.

echo "result1" |  tee -a  test.txt
echo "result2" |  tee -a  test.txt

ODER verwenden Sie dies in 1-Schritt

echo "result1" && echo "result2" |  tee -a  test.txt

Antwort3

Der Umleitungsoperator erwartet eine Zeichenfolge oder einen Zeichenstrom als Eingabeseite und eine Datei auf der anderen Seite. Sie müssen also catden Befehl verwenden, um zuerst die Datei zu lesen und dann die Zeichen des Zeichenstroms in die Ausgabedatei umzuleiten.

touch test.txt
touch loc
echo "result1" > loc
cat loc >> test.txt
echo "result2" > loc
cat loc >> test.txt
rm loc

verwandte Informationen