PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : &1 oder /dev/null über Variable steuern



Los_Andros
21-01-2004, 06:50
Hallo,
Ich möchte meinem Shellscript einen "vebose" Mode verpassen.
Dafür habe ich hinter jedes echo eine Variable gesetzt.
Etwa so

case $VERBOSE in
YES) STD=&1 ;;
*) STD=/dev/null ;;
esac

...
echo "blablabla" >$STD
echo "blublublub" >$STD


Nur funktioniert das so nicht, ich sehe dann als Output
echo "blablabla" >/dev/null


Wie kann ich das lösen?

Los_Andros
21-01-2004, 08:04
Ich habe jetzt jetzt auch mal so probiert:

case $VERBOSE in
YES) STD="" ;;
*) STD=# ;;
esac

.....
$STD echo "blablabla"

Aber da geht nicht:
#: myshell.sh 18: not found

Christoph
21-01-2004, 08:58
Probiers mal mit eval. Dadurch werden Variablen vor Ausführung des Kommandos expandiert.

Los_Andros
21-01-2004, 09:08
Danke, hat geklappt,
habs bisserl umgeschrieben.

case $VERBOSE in
YES) STD="" ;;
*) STD="#" ;;
esac

...
eval $STD echo "blablabla"
...

Und das geht ;-)