Como desfazer `set -x`?

Eu digitei set -x no terminal.

Agora o terminal continua imprimindo o último comando executado em cima da minha saída para que o comando

~]$echo "this is what I see" 

retorne

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

Existe nenhuma página do manual para set, como faço para desativar set -x?

Comentários

  • set é um comando shell builtin (pelo menos em bash é), então a documentação é encontrada na página de manual do bash ' s. Pesquise na página do manual por /^ *SHELL BUILTIN COMMANDS para ler tudo sobre set e seus amigos!
  • mas uma página man para set! Faz parte do guia do programador POSIX … Você deve realmente obter essa série … por favor?
  • No Bash, digite help set.
  • @ lonewarrior556 se você achar alguma resposta útil, pode comentar e / ou marcar uma solução. Contribuímos com nosso tempo para ajudar …

Resposta

Use set +x. Mais informações:

$ type set set is a special shell builtin 

Como set é um shell embutido, está documentado na documentação do seu shell.

Esteja ciente de que alguns sistemas possuem páginas de manual para shell embutidos, mas essas páginas de manual só estão corretas se você estiver usando o shell padrão. No Linux, você pode ter páginas de manual que apresentam comandos POSIX, que aparecerá para os comandos do shell porque não há uma página de manual de um utilitário independente para protegê-los; essas páginas de manual estão corretas para todos os shells de estilo Bourne (traço, bash, * ksh e até mesmo zsh), mas geralmente incompletas.

Consulte Lendo e pesquisando páginas de manual longas para obter dicas sobre como pesquisar uma página de manual integrada em uma longa shell.

Nesse caso, a resposta é a mesma para todos os shells de estilo Bourne. Se set -LETTER ativa uma opção, set +LETTER a desativa. Portanto, set +x desativa os rastreamentos. O último rastreamento que lê set +x é inevitável (exceto por deixar o shell sair – às vezes você pode usar um subshell (set -x; command to trace; other command to trace); command that is not traced).

Comentários

  • Esta é uma boa resposta, mas teria me economizado alguns minutos se você colocasse o " set + x " no início em vez de incorporado no último parágrafo. (Achei os detalhes adicionais úteis.)
  • { set +x ;} 2> /dev/null oculta o set +x trace (won ' mas não funcionam no shell Bourne). Alguns shells ainda geram uma + 2> /dev/null.

Resposta

Você pode interromper o modo de depuração set +x. Veja o exemplo da página

Resposta

Você ativou a depuração modo, você precisa desligá-lo.

Extrair formulário help set:

Usar + em vez de – faz com que esses sinalizadores sejam desativados.

Então digite set +x

Resposta

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

Você não pode “encontrar uma página de manual apenas em set, porque como você vê abaixo:

$ type set 

set é um shell especial integrado Enquanto documentado na página de manual do seu shell, presumindo bash aqui, você também pode obter documentação específica com

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

A página de manual em bash ou sh é uma boa leitura, mas é um pouco longo para resolver. As informações eficazes de que você precisava para cancelar a configuração de -x estão no final antes de Exit Status: e dizem:

Usar + em vez de – faz com que esses sinalizadores sejam desligados. Os sinalizadores também podem ser usados na chamada do shell. O conjunto atual de sinalizadores pode ser encontrado em $ -. Os n ARGs restantes são parâmetros posicionais e são atribuídos, na ordem, a $ 1, $ 2, .. $ n. Se nenhum ARG for fornecido, todas as variáveis do shell serão impressas.

Comentários

  • Embora não esteja errado , o que você adicionou além das respostas existentes?
  • @JeffSchaller Ele ' foi editado para ser direto e breve. Quando precisei dessa resposta, tive que ler a página inteira para descobrir a resposta correta. Na verdade, desisti de ler a resposta aceita e apenas fui para help set e li isso. Tentei melhorar a resposta aceita. unix.stackexchange.com/revisions/149137/4 Foi aceito, mas depois rejeitado.Como um artigo de notícias, ele começa com as informações mais importantes e assume que a qualquer momento o leitor pode parar, com cada frase e parágrafo seguintes sendo menos importantes do que o processo. É ' é o meu estilo SO em UNIX se.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *