J'ai le script shell suivant qui renvoie la sortie echos au journal et les erreurs à err_file. Cependant, je veux spécifiquement faire écho à certaines déclarations à stderr. Pls aiderksh echo vers stderr pour des instructions spécifiques
#!/bin/ksh
echo "paramPassed: $0 $#"
err_file="error_file.txt"
new_file="new_file.txt"
exec >> ${new_file}
#exec >> ${new_file} 2>${err_file}
#exec >> ${new_file} 2>&1
if [ $# -eq 1 ]; then
username=$1
fi
userInfo=$(paramInfo ${username} | awk -F: '{print $2}')
echo ${userInfo}
rcp ${err_file} mtvst32:/rcs/ver34/${err_file}
if [ $? -ne 0 ]; then
#This doesn't work. Need the following to go to console
echo "UserInfo.SH FAILED copy to mtvst32" >> &2;
fi
Je souhaite envoyer la sortie de la dernière si la condition de std erreur cependant, ne pouvait pas comprendre comment le faire.
Merci Dennis. Ça a marché. ce que je voulais réellement était ce: du même code ci-dessus exec >> $ {nouveau_fichier} 2> & 1 et envoyer uniquement la dernière déclaration d'écho à la console. Y'a-t'il un quelconque moyen d'y arriver? En d'autres termes, toutes les erreurs doivent aller dans le même fichier sauf pour ce qui suit: if [$? -ne 0]; then # Cela ne fonctionne pas. Besoin de ce qui suit pour aller à la console echo "UserInfo.SH FAILED copy to mtvst32"> & 2; fi que je veux envoyer à la console. Cependant dans le cas ci-dessus, il va dans le nouveau fichier en raison de la redirection. Merci. – Kiran
@Kiran: Avant votre 'exec >> $ {nouveau_fichier} 2> & 1' (j'ai ignoré cela parce qu'ils ont été commentés dans votre question), ajoutez' exec 3> & 2' pour copier FD 2 à FD 3. Alors votre écho à la console sera 'echo" ... "> & 3'. –
Doux .. merci Dennis. Ça marche. – Kiran