Vous pouvez simplement prolonger shebang comme ceci#!/bin/bash -x
sobi3ch
Réponses:
110
bash -x script
ou
set-x
dans le script.
Vous pouvez redéfinir l'option avec set +x. Si vous voulez juste le faire pour quelques commandes, vous pouvez utiliser un sous-shell: `(set -x; command1; command; ...;)
Mais -v n'imprime pas la chaîne PS4 avant chaque ligne de script et ne trace pas les étapes d'une instruction "pour" (par exemple) individuellement. Il fait écho aux commentaires alors que -x ne le fait pas.
Voici un exemple de sortie utilisant -v:
#!/bin/bash -v# this is a commentfor i in{1..4}do
echo -n $idone1234echo
echo hello
hello
Voici le résultat du même script avec -x:
+for i in'{1..4}'+ echo -n 11+for i in'{1..4}'+ echo -n 22+for i in'{1..4}'+ echo -n 33+for i in'{1..4}'+ echo -n 44+ echo+ echo hello
hello
Notez que j'ai inclus "echo -n" pour mettre en évidence les différences entre -v et -x. En outre, -v est identique à "-o verbose", mais ce dernier ne semble pas fonctionner dans le cadre d'un shebang.
set -o xtraceet set +o xtracesont vos amis (plus verbeux que -o verbose, et la sortie passe à STDERR, par opposition à verbose, qui semble se connecter à STDOUT).
L'inclusion set -xdans le script lui-même activera la fonctionnalité tout set +xen la désactivant. Ces deux méthodes fonctionneront également avec le shell sh plus portable.
set
options, vous pouvez les trouver sur cette page de manuel .#!/bin/bash -x
Réponses:
ou
dans le script.
Vous pouvez redéfinir l'option avec
set +x
. Si vous voulez juste le faire pour quelques commandes, vous pouvez utiliser un sous-shell: `(set -x; command1; command; ...;)la source
PS4
vous pouvez modifier l'invite de-x
. Exemple:PS4='Line $LINENO @ $(date +%s.%N): ' bash -x script
(date
cela ralentira cependant)Ceux-ci fonctionnent également:
ou
Mais -v n'imprime pas la chaîne PS4 avant chaque ligne de script et ne trace pas les étapes d'une instruction "pour" (par exemple) individuellement. Il fait écho aux commentaires alors que -x ne le fait pas.
Voici un exemple de sortie utilisant -v:
Voici le résultat du même script avec -x:
Notez que j'ai inclus "echo -n" pour mettre en évidence les différences entre -v et -x. En outre, -v est identique à "-o verbose", mais ce dernier ne semble pas fonctionner dans le cadre d'un shebang.
la source
Cela devrait également fonctionner:
la source
Cela devrait fonctionner:
la source
set -o xtrace
etset +o xtrace
sont vos amis (plus verbeux que-o verbose
, et la sortie passe à STDERR, par opposition à verbose, qui semble se connecter à STDOUT).Voir plus de conseils ici
la source
Il y a plusieurs façons.
comme la ligne shebang.
L'inclusion
set -x
dans le script lui-même activera la fonctionnalité toutset +x
en la désactivant. Ces deux méthodes fonctionneront également avec le shell sh plus portable.Si je me souviens bien, Perl a aussi l'option -x.
la source
va comme
language = python, perl, bash -x = script d'opérateur = nom de fichier
J'espère que ça aide.
la source
-x
n’a rien à faire avec un écho en Python#! /bin/bash -x
fait ce que tu veux.la source