¿Hay alguna manera de redirigir stdout y stderr a través de variables como agregar opciones de comando en el script?
Por ejemplo tengo un script:
#!/bin/bash -x
TEST=">/dev/null 2>&1"
OPT='-p -v'
mkdir $OPT 123/123/123 $TEST
Puedo ver que OPT se reemplaza -p
sin problemas y bash lo interpreta como una opción. Pero la redirección se interpreta como el nombre de los directorios.
$ ./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'
¿Hay alguna manera de decir bash, que $ VAR es redirección, no nombres de directorios?
PD. Puede ser que estoy en el camino equivocado, pero quiero hacer una salida detallada o no detallada de mi script. Pero necesito algo de salida incluso en modo no detallado, por lo tanto, no puedo simplemente redirigir stdout y stderr completos, solo desde algunos comandos dentro de mi script.