[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: