Re: [HS] Petite question bash sur les redirections
guy.roussin@teledetection.fr a écrit :
> Bonsoir,
>
> [Version rapide]
> Comment s'appelle la console en cours d'utilisation (device)
> lorsqu'on lance un script bash ?
>
> [Version détaillée]
> Je voudrais faire un script qui envoie une sortie
> vers /dev/null ou vers la console en cours d'utilisation selon
> un paramètre passé par l'utilisateur a un script.
> donc, du genre :
> une_de_mes_commandes | tee monfichier > /dev/null
> ou
> une_de_mes_commandes | tee monfichier > /dev/console_en_cours
>
> Comme la chose se trouve un peu partout dans le code bash,
> je pensais faire :
> if [ VersDevNull -eq 1 ]; then
> Sortie="/dev/null"
> else
> Sortie="/dev/console_en_cours"
> fi
>
> Puis dans le code :
>
> ma_commande_num_1 | tee monfichier > $Sortie
> ...
> ma_commande_num_2 | tee monfichier > $Sortie
> ...
>
si ça se répéte, ça mérite une fonction:
lancer()
{
commande=$*
if [ ... ]; then
$command | tee monfichier > /dev/null
else
$command [ tee monfichier
fi
}
cela dit, je préfère en général procéder en deux étapes:
- le script "principal" écrit normalement. il n'y a donc pas trop de
"if" dedans.
- un autre script est utilisé pour lancer le script "principal" et qui
peut donc mettre /dev/null et autres joyeusetés.
ça permet de garder le script principal propre. (cela dit, on peut aussi
convertir le script principal en fonction et la mettre dans l'autre).
Reply to: