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
Antworten:
Entfernen Sie einfach die Backticks aus Ihrem Skript:
Andernfalls wird der Befehl ausgeführt, und dann wird seine Ausgabe ersetzt und ausgeführt.
Zum Beispiel:
wird ausgeben :
date
, währendgibt das aktuelle Datum aus, dh es wird zuerst ausgewertet
date
und dann ausgeführt, wodurch das Programmdate
selbst aufgerufen wird.quelle