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.