LS Befehlsausgabe in Datei [geschlossen]

8

Ich möchte die Ausgabe des Befehls ls in einer Datei erfassen

ls >> lsOutput.log

Dieser funktioniert, wenn er in der Befehlszeile ausgeführt wird. Wenn es jedoch in ein Shell-Skript ( lsOutput.sh) eingefügt wird, wird zurückgegeben

./lsOutput.sh: 3: ./lsOutput.sh: total: not found

lsOutput.sh Code

#!/bin/sh

`ls -lrt` >> lsOutput.log
user60216
quelle
Die Backticks um den Befehl im Skript bedeuten etwas ganz anderes als den einfachen Befehl, der über die Befehlszeile ausgeführt wird.
vonbrand

Antworten:

9

Entfernen Sie einfach die Backticks aus Ihrem Skript:

#!/bin/sh

ls -lrt >> lsOutput.log

Andernfalls wird der Befehl ausgeführt, und dann wird seine Ausgabe ersetzt und ausgeführt.

Zum Beispiel:

echo date

wird ausgeben : date, während

`echo date`

gibt das aktuelle Datum aus, dh es wird zuerst ausgewertet dateund dann ausgeführt, wodurch das Programm dateselbst aufgerufen wird.

Aularon
quelle
Hallo .. Danke Aularon. Es funktionierte! Ich danke dir sehr!
user60216
Hallo auloran, wahrscheinlich kannst du mir auch bei dieser Anfrage helfen: unix.stackexchange.com/questions/117609/…
user60216