travail, je suis nouveau script, donc je l'ai utilisé:J'utilise exec 5> debug_output.txt/BASH_XTRACEFD = « 5 » pour les scripts de débogage, mais il littéralement arrêté du jour au lendemain
exec 5> debug_output.txt
BASH_XTRACEFD="5"
à envoie la sortie d'un script à debug_output.txt. Cela me permettait de comparer la sortie du script avec ce que le script faisait, ce que je trouve très utile. Je testais avec cette configuration la nuit dernière et ça fonctionnait bien. Je suis arrivé ce matin et maintenant ça ne marche pas. J'utilise exactement le même script dans le même terminal. Le script va s'exécuter et le fichier debug_output.txt est créé mais il est vide. J'ai essayé de supprimer debug_output.txt et le myscript1.sh et de le recréer, sans changement. Le redémarrage n'a pas fonctionné non plus. Voici mon script:
#!/bin/bash
exec 5> debug_output.txt
BASH_XTRACEFD="5"
PS4='$LINENO: '
var1=blah
var2=foo
echo Currently in $0
echo
echo $0 :: var1 : $var1, var2 : $var2
export var1
echo
echo Entering myscript2.sh
./myscript2.sh
echo
echo Back in $0
echo $0 :: var1 : $var1, var2 : $var2
echo
est ici la sortie:
(^)#(^)#(^)#(^)[email protected]:~/bashscripttutorial$ ./myscript1.sh
Currently in ./myscript1.sh
./myscript1.sh :: var1 : blah, var2 : foo
Entering myscript2.sh
Currently in ./myscript2.sh
./myscript2.sh :: var1 : blah, var2 :
Back in ./myscript1.sh
./myscript1.sh :: var1 : blah, var2 : foo
(^)#(^)#(^)#(^)[email protected]:~/bashscripttutorial$
Voici le contenu après que le script est exécuté:
(^)#(^)#(^)#(^)[email protected]:~/bashscripttutorial$ ls
debug_output.txt foo myscript1.sh myscript1.sh~ myscript2.sh myscript2.sh~
(^)#(^)#(^)#(^)[email protected]:~/bashscripttutorial$ cat debug_output.txt
(^)#(^)#(^)#(^)[email protected]:~/bashscripttutorial$
(^)#(^)#(^)#(^)[email protected]:~/bashscripttutorial$
Je voudrais avoir le contenu de la sortie de débogage. fichier txt quand il a travaillé la nuit dernière, mais j'ai perdu cela quand j'ai redémarré.
qui l'a fait. J'ai ajouté 'set -x' juste en dessous de 'BASH_XTRACEFD =" 5 "'. Je ne comprends toujours pas pourquoi cela a fonctionné la nuit dernière sans elle. Merci –
cela pourrait fonctionner si lancé 'bash -x myscriptn.sh' –