Czy jest jakiś sposób na przekierowanie stdout i stderr przez zmienną, na przykład poprzez dodanie opcji poleceń w skrypcie?
Na przykład mam skrypt:
#!/bin/bash -x
TEST=">/dev/null 2>&1"
OPT='-p -v'
mkdir $OPT 123/123/123 $TEST
Widzę, że OPT został zastąpiony -p
bez żadnych problemów i bash interpretuje to jako opcję. Ale przekierowanie interpretuje jako nazwę katalogów.
$ ./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'
Czy jest jakikolwiek sposób powiedzieć bash, że $ VAR to przekierowanie, a nie nazwy katalogów.
PS. Być może jestem w złym kierunku, ale chcę tworzyć opcjonalne pełne lub nieokreślone dane wyjściowe z mojego skryptu. Ale potrzebuję trochę danych wyjściowych nawet w trybie nieokreślonym, dlatego nie mogę po prostu przekierować całego stdout i stderr, tylko z niektórych poleceń w moim skrypcie.