Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: Ausgabeumleitung eines Kommandos  (Read 2329 times)

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
Ausgabeumleitung eines Kommandos
« on: 2014/02/02, 12:57:15 »
Hallo zusammen,
kann man das nachfolgende Beispiel besser lösen?

Code: [Select]
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.
« Last Edit: 2014/02/02, 13:11:53 by bluelupo »

Offline hefee

  • User
  • Posts: 392
Re: Ausgabeumleitung eines Kommandos
« Reply #1 on: 2014/02/02, 16:39:24 »
Du könntest die Debugfähigkeiten (xtrace) von sh/bash nutzen:
Code: [Select]
set -x
und wieder ab mit:
Code: [Select]
set +x

Eine sehr elegante Methode ist die Arbeit dann mit subshells:
Code: [Select]
(set -x; df -a) >out.log 2>&1

Oder über eine Funktion ($@ entspricht allen Argumenten, die der Funktion übergeben werden):
Code: [Select]
logcommand() { echo "$@"; $@;  }
logcommand "df -a" > out.log

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
Re: Ausgabeumleitung eines Kommandos
« Reply #2 on: 2014/02/02, 19:24:24 »
hi hefee,
das ist genau das was ich gesucht habe ;D

Code: [Select]
(set -x; df -a) >out.log 2>&1
Das mit dem Kommando set ist mir nicht mehr eingefallen. Danke für den Tipp!!!

« Last Edit: 2014/02/02, 19:27:36 by bluelupo »