Ich schreibe ein Bash-Skript, wo ich möchte, dass alle Befehle, wie sie auftreten, echoed werden. Ich weiß, dass ich set -x
und set +x
verwenden muss, um dieses Verhalten ein- bzw. auszuschalten (SOF post here). Es gibt jedoch nicht alles wieder, nämlich E/A-Weiterleitungen.Bash-Set -x-Echo-Weiterleitungen sowie Befehle
Zum Beispiel lassen Sie uns sagen, dass ich diese sehr einfache Bash-Skript haben:
set -x
./command1 > output1
./command2 arg1 arg2 > output2
Dies wird der Ausgang
+ ./command1
+ ./command2 arg1 arg2
Bash ist nicht meine stdout Echo umleiten zu output1 und output2. Warum ist das? Wie kann ich dieses Verhalten erreichen? Vielleicht gibt es eine shopt
Option, die ich im Skript einstellen muss?
HINWEIS: Ich bemerkte auch, dass Rohre nicht wie erwartet gedruckt werden. Zum Beispiel, wenn ich diesen Befehl verwenden waren:
set -x
./command3 | tee output3
werde ich diese Ausgabe erhalten:
+ tee output3
+ ./command3
Wie mache ich die Befehle in der Art und Weise wider genau werden sie geschrieben werden, anstatt die des Habens Rohr nach dem Skript neu geordnet?
Aber was ist mit FreeBSD System? Weil ich einen solchen Trick dort wegen des Fehlens des DEBUG-Signals nicht machen kann. Irgendwelche Vorschläge? – vwvolodya