Gibt es eine Möglichkeit, stdout und stderr über Variablen umzuleiten, wie das Hinzufügen von Befehlsoptionen im Skript?
Zum Beispiel habe ich ein Skript:
#!/bin/bash -x
TEST=">/dev/null 2>&1"
OPT='-p -v'
mkdir $OPT 123/123/123 $TEST
Ich kann sehen, dass OPT -p
ohne Probleme durch ersetzt wird und Bash interpretiert es als Option. Die Umleitung wird jedoch als Verzeichnisname interpretiert.
$ ./test.sh
+ TEST='>/dev/null 2>&1'
+ OPT='-p -v'
+ mkdir -p -v 123/123/123 '>/dev/null' '2>&1'
mkdir: created directory `123/123'
mkdir: created directory `123/123/123'
mkdir: created directory `>/dev'
mkdir: created directory `>/dev/null'
mkdir: created directory `2>&1'
Gibt es eine Möglichkeit, bash zu sagen, dass $ VAR eine Umleitung ist, keine Verzeichnisnamen.
PS. Vielleicht bin ich auf dem falschen Weg, aber ich möchte eine optionale ausführliche oder nicht ausführliche Ausgabe von meinem Skript machen. Aber ich brauche eine Ausgabe auch im nicht-ausführlichen Modus, daher kann ich nicht nur ganze stdout- und stderr-Befehle umleiten, sondern nur einige Befehle innerhalb meines Skripts.