Есть ли способ перенаправить stdout и stderr через переменную, например, добавив параметры команды в сценарии?
Например, у меня есть скрипт:
#!/bin/bash -x
TEST=">/dev/null 2>&1"
OPT='-p -v'
mkdir $OPT 123/123/123 $TEST
Я вижу, что OPT заменяется -p
без каких-либо проблем, и bash интерпретирует его как опцию. Но перенаправление интерпретируется как имя каталога.
$ ./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'
Есть ли способ сказать bash, что $ VAR - это перенаправление, а не имена dirs.
PS. Может быть, я нахожусь на неправильном пути, но я хочу сделать дополнительный подробный или не многословный вывод из моего сценария. Но мне нужен вывод даже в не подробном режиме, поэтому я не могу просто перенаправить весь stdout и stderr, только с некоторых команд внутри моего скрипта.