Gemäß " Linux: The Complete Reference 6th Edition " (S. 44) können Sie mit den Umleitungssymbolen nur STDERR |¨eiten.
Ich habe ein ziemlich einfaches Skript geschrieben, um dies zu testen:
#!/bin/bash
echo "Normal Text."
echo "Error Text." >&2
Ich führe dieses Skript folgendermaßen aus:
./script.sh |& sed 's:^:\t:'
Vermutlich werden nur die in STDERR gedruckten Zeilen eingerückt. Allerdings funktioniert es nicht wirklich so, wie ich sehe:
Normal Text.
Error Text.
Was mache ich hier falsch?
./script.sh > /tmp/stdout_goes_here |& grep 'grepping_script_stderr'nicht wie vorgesehen funktioniert, dh: redirectscript.sh'sstdout(was laut manuellem Snippet zuerst passieren sollte), dann erlaubengrep, die Skripte zu verarbeitenstderr. Stattdessenstderrund tdout` landen beidestdout_goes_here