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

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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.