Comment puis-je obtenir toutes les commandes de Stdout qui fonctionnent dans Bash Script?
C'est la sortie doit contenir des commandes de sortie et des commandes elles-mêmes.
J'ai trouvé
#!/bin/bash -x
mais ce n'est pas exactement la même chose parce que au lieu de
mysql -v dbname < dump.sql | grep "CREATE TABLE"
ça montre
+ mysql -v dbname
+ grep 'CREATE TABLE'
Utilisation bash -v
.
Ceci est le script:
#!/bin/bash -v
echo "Hello, World" | sed 's|Hello|Goodbye|'
echo "Done."
Ceci est la sortie:
#!/bin/bash -v
echo "Hello, World" | sed 's|Hello|Goodbye|'
Goodbye, World
echo "Done."
Done.
Malheureusement, il n'y a pas de marqueur spécial comme PS4
Pour imprimer des commandes étendues. Vous pouvez combiner les deux pour identifier rapidement les commandes:
#!/bin/bash -vx
echo "Hello, World" | sed 's|Hello|Goodbye|'
+ echo 'Hello, World'
+ sed 's|Hello|Goodbye|'
Goodbye, World
echo "Done."
+ echo Done.
Done.