Existe-t-il un moyen de rediriger stdout et stderr via une variable comme l'ajout d'options de commande dans le script?
Par exemple, j'ai un script:
#!/bin/bash -x
TEST=">/dev/null 2>&1"
OPT='-p -v'
mkdir $OPT 123/123/123 $TEST
Je peux voir que OPT est remplacé par -p
sans aucun problème et bash l'interprète en option. Mais la redirection interprète comme nom de répertoire.
$ ./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'
Existe-t-il un moyen de dire bash, que $ VAR est une redirection, pas un nom de répertoire.
PS. Je me trompe peut-être, mais je veux faire une sortie verbeuse ou non verbeuse facultative à partir de mon script. Mais j'ai besoin d'une sortie même en mode non verbeux, donc je ne peux pas simplement rediriger stdout et stderr entiers, uniquement à partir de certaines commandes à l'intérieur de mon script.