Чи є спосіб перенаправити 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'
Чи є спосіб сказати баш, що $ VAR - це перенаправлення, а не імена dirs.
PS. Можливо, я неправильно рухаюся, але я хочу зробити необов'язковий багатослівний або необов'язковий вихід зі свого сценарію. Але мені потрібен певний вихід навіть у невербольному режимі, тому я не можу просто перенаправляти цілу stdout та stderr, лише з деяких команд всередині мого сценарію.