Comment annuler `set -x`?

Jai tapé set -x dans le terminal.

Maintenant, le terminal continue dimprimer la dernière commande exécuter au-dessus de ma sortie donc la commande

~]$echo "this is what I see" 

renvoie

+ echo "this is what I see" this is what I see 

Il y a pas de page de manuel pour set, comment désactiver set -x?

Commentaires

  • set est une commande shell builtin (du moins en bash cest le cas), donc la documentation est trouvée dans la page de manuel de bash '. Recherchez /^ *SHELL BUILTIN COMMANDS dans la page de manuel pour tout savoir sur set et ses amis!
  • mais il y a une page man pour set! Il fait partie du guide des programmeurs POSIX … Vous devriez vraiment obtenir cette série … sil vous plaît?
  • Dans Bash, tapez help set.
  • @ lonewarrior556 si vous trouvez lune des réponses utiles, pouvez-vous sil vous plaît commenter et / ou marquer une solution. Nous consacrons notre temps pour vous aider ….

Réponse

Utilisez set +x. Plus dinformations:

$ type set set is a special shell builtin 

Puisque set est un shell intégré, il est documenté dans la documentation de votre shell.

Attention, certains systèmes ont des pages de manuel pour le shell intégré, mais ces pages de manuel ne sont correctes que si vous utilisez le shell par défaut. Sous Linux, vous pouvez avoir des pages de manuel qui présentent des commandes POSIX, qui apparaîtra pour les modules internes du shell car il ny a pas de page de manuel d un utilitaire autonome pour les observer; ces pages de manuel sont correctes pour tous les shells de style Bourne (tiret, bash, * ksh et même zsh) mais généralement incomplètes.

Voir Lire et rechercher de longues pages de manuel pour obtenir des conseils sur la recherche dun élément intégré dans une longue page de manuel du shell.

Dans ce cas, la réponse est la même pour tous les shells de style Bourne. Si set -LETTER active une option, set +LETTER la désactive. Ainsi, set +x désactive les traces. La dernière trace qui lit set +x est inévitable (sauf en laissant le shell quitter – parfois vous pouvez utiliser un sous-shell (set -x; command to trace; other command to trace); command that is not traced).

Commentaires

  • Cest une bonne réponse, mais cela maurait fait gagner quelques minutes si vous aviez mis les " set + x " au début plutôt quincorporé dans le dernier paragraphe. (Jai trouvé les détails supplémentaires utiles.)
  • { set +x ;} 2> /dev/null masque la trace set +x (gagné ' t fonctionne dans le shell Bourne). Certains shells affichent toujours une + 2> /dev/null.

Réponse

Vous pouvez arrêter le mode de débogage en set +x. Voir lexemple page

Réponse

Vous avez activé le débogage mode, vous devez le désactiver.

Extraire le formulaire help set:

Lutilisation de + au lieu de – entraîne la désactivation de ces indicateurs.

Saisissez donc set +x

Réponse

$ set +x # is the opposite of set -x, and will reverse what you typed. 

Vous ne pouvez « pas trouver de page de manuel uniquement sur set, car comme vous le voyez ci-dessous:

$ type set 

set est un shell spécial intégré . Bien que documenté dans la page de manuel de votre shell, en supposant que bash ici, vous pouvez également obtenir une documentation spécifique avec

$ help set || builtin help set # luckily Bash has builtin help on builtin commands 

La page de manuel sur bash ou sh est une bonne lecture, mais cest un peu long à trier. Les informations effectives dont vous avez besoin pour dé-paramétrer votre -x se trouvent à la fin avant Exit Status: et se lit comme suit:

Lutilisation de + au lieu de – entraîne la désactivation de ces indicateurs. Les drapeaux peuvent également être utilisés lors de linvocation du shell. Lensemble actuel dindicateurs peut être trouvé dans $ -. Les n ARG restants sont des paramètres de position et sont affectés, dans lordre, à $ 1, $ 2, .. $ n. Si aucun ARG nest indiqué, toutes les variables du shell sont affichées.

Commentaires

  • Bien que ce ne soit pas faux , quavez-vous ajouté au-delà des réponses existantes?
  • @JeffSchaller Il ' a été modifié par souci de franchise et de concision. Quand javais besoin de cette réponse, je devais lire toute la page pour trouver la bonne réponse. En fait, jai abandonné la lecture de la réponse acceptée et je suis simplement allé à help set et je lai lu. Jai essayé daméliorer la réponse acceptée. unix.stackexchange.com/revisions/149137/4 Elle a été acceptée mais rejetée.Comme un article de presse, il commence par les informations les plus importantes et suppose quà tout moment le lecteur peut sarrêter, chaque phrase et paragraphe suivant étant moins important que la procédure. Cest ' mon style SO sur unix se.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *