Redirection de sortie Unix

J’ai un script qui invite l’utilisateur à sélectionner des options comme «y» ou «n». Si ‘y’ est sélectionné, le script poursuit son exécution et si ‘n’ est sélectionné, il s’arrête.

Je veux que la sortie de ce fichier soit redirigée vers un fichier journal. donc utilisé ci-dessous commande: –

./script stop >> script_RUN.log 2>&1 

Le problème est que le script commence à s’exécuter mais ne demande pas à demander des options comme «y» ou «n». Il écrit ceci dans script_RUN.log.

Comment puis-je créer un script pour demander aux utilisateurs des options et redirect l’exécution ultérieure vers script_RUN.log?

vous pouvez essayer d’utiliser la commande tee place.

 ./script stop | tee script_RUN.log 

REMARQUE:

Seule la sortie du programme sera enregistrée.

MODIFIER:

si vous ne voulez pas voir la sortie sur la console, redirigez-la dans /dev/null

par exemple:

  ./script stop | tee script_RUN.log > /dev/null 

la ligne ci-dessus va écrire le fichier dans le journal, mais pas imprimer sur la console

Cela fonctionne comme il faut vraiment. Vous redirigez les sorties stdout et stderr dès le début. Au lieu de cela, vous devriez essayer de le redirect dans le script après l’invite. Je pense que cela vous serait utile:

redirect COPY de stdout pour consigner le fichier depuis le script bash lui-même