Siduction Forum
Siduction Forum => Scripting & Kernelhacking => Topic started by: bluelupo on 2014/02/02, 12:57:15
-
Hallo zusammen,
kann man das nachfolgende Beispiel besser lösen?
echo "df -a" > out.log; df -a >> out.log
Was will ich erreichen?
Ich möchte den Kommandoaufruf, in diesem Fall df -a und die Ausgabe desselben Kommandos, in eine Logdatei schreiben. Das obige Beispiel funktioniert, aber ich denke das es eleganter zu lösen ist.
-
Du könntest die Debugfähigkeiten (xtrace) von sh/bash nutzen:
set -x
und wieder ab mit:
set +x
Eine sehr elegante Methode ist die Arbeit dann mit subshells:
(set -x; df -a) >out.log 2>&1
Oder über eine Funktion ($@ entspricht allen Argumenten, die der Funktion übergeben werden):
logcommand() { echo "$@"; $@; }
logcommand "df -a" > out.log
-
hi hefee,
das ist genau das was ich gesucht habe ;D
(set -x; df -a) >out.log 2>&1
Das mit dem Kommando set ist mir nicht mehr eingefallen. Danke für den Tipp!!!