Par exemple, j'ai un simple fichier bash
#!/bin/bash
cd ~/hello
ls
Comment puis-je faire en sorte qu'il affiche chaque commande avant de l'exécuter ? C'est l'effet inverse de "@echo off" dans les scripts batch de Windows.
Par exemple, j'ai un simple fichier bash
#!/bin/bash
cd ~/hello
ls
Comment puis-je faire en sorte qu'il affiche chaque commande avant de l'exécuter ? C'est l'effet inverse de "@echo off" dans les scripts batch de Windows.
Ceux-ci fonctionnent également :
set -v
o
#!/bin/bash -v
Mais -v n'imprime pas la chaîne PS4 avant chaque ligne de script et il ne trace pas les étapes d'une instruction "for" (par exemple) individuellement. Il fait l'écho des commentaires alors que -x ne le fait pas.
Voici un exemple de la sortie en utilisant -v :
#!/bin/bash -v
# this is a comment
for i in {1..4}
do
echo -n $i
done
1234echo
echo hello
hello
Voici le résultat du même script avec -x :
+ for i in '{1..4}'
+ echo -n 1
1+ for i in '{1..4}'
+ echo -n 2
2+ for i in '{1..4}'
+ echo -n 3
3+ for i in '{1..4}'
+ echo -n 4
4+ echo
+ echo hello
hello
Notez que j'ai inclus "echo -n" pour mettre l'accent sur les différences entre -v et -x. De même, -v est identique à "-o verbose", mais ce dernier semble ne pas fonctionner en tant que partie d'un shebang.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.