Como desfazer `set -x`?

77

Eu digitei o set -xterminal.

Agora, o terminal continua imprimindo o último comando executado em cima da minha saída, então o comando

~]$echo "this is what I see"

retorna

+ echo 'this is what I see'
this is what I see

Não existe uma página de manual para set, como desligo set -x?

lonewarrior556
fonte
8
seté um builtincomando shell (pelo menos no bash), portanto, a documentação é encontrada na página do manual do bash. Pesquise na página de manual para /^ *SHELL BUILTIN COMMANDSler tudo sobre sete seus amigos!
Dg99
4
mas uma manpágina para set! Faz parte do guia dos programadores POSIX ... Você realmente deve receber essa série ... por favor?
mikeserv
8
No Bash, digite help set.
200_success
@ lonewarrior556 se alguma das respostas for útil, você pode comentar e / ou marcar uma solução. Nós contribuímos nosso tempo para ajudar ....
Simply_Me

Respostas:

77

Use set +x. Mais Informações:

$ type set
set is a special shell builtin

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

Observe que alguns sistemas têm páginas de manual para os componentes internos do shell, 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 apresentem comandos POSIX, que serão ativados para shell builtins porque não há página de manual de um utilitário independente para ocultá-los; essas páginas de manual estão corretas para todos os shells no estilo Bourne (dash, bash, * ksh e até zsh), mas geralmente incompletas.

Consulte Lendo e pesquisando páginas de manual longas para obter dicas sobre como procurar um interno em uma página de manual longa.

Nesse caso, a resposta é a mesma para todas as conchas no estilo Bourne. Se ativar uma opção, desative-a. Assim, desativa os traços. O último rastreamento lido é inevitável (exceto deixando o shell sair - às vezes você pode usar um subshell ).set -LETTERset +LETTERset +xset +x(set -x; command to trace; other command to trace); command that is not traced

Gilles
fonte
4
Essa é uma boa resposta, mas teria me poupado alguns minutos se você colocasse o "conjunto + x" básico no início, em vez de incorporado no último parágrafo. (Eu fiz encontrar o detalhe adicional útil.)
DA
2
{ set +x ;} 2> /dev/nulloculta o set +xrastreamento (embora não funcione no shell Bourne). Algumas conchas ainda produzem um efeito + 2> /dev/null.
Stéphane Chazelas
51

Você pode parar o modo de depuração por set +x. Veja a página de exemplo

Simplesmente eu
fonte
18

Você ativou o modo de depuração, precisa desativá-lo.

Extrair formulário help set:

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

Então digite set +x

ctrl-alt-delor
fonte
1
$ 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 setporque, como você vê abaixo:

$ type set

seté um shell especial embutido. Enquanto documentado na página de manual do seu shell, presumindo o 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 no bash ou sh é uma boa leitura, mas é um pouco longo para resolver. As informações efetivas necessárias para desfazer a configuração -xestão no final anterior Exit Status:e lê:

Usar + em vez de - faz com que esses sinalizadores sejam desativados. 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, em ordem, a $ 1, $ 2, .. $ n. Se nenhum ARG for fornecido, todas as variáveis ​​do shell serão impressas.

dlamblin
fonte
Embora não esteja errado, o que você adicionou além das respostas existentes?
Jeff Schaller
@JeffSchaller Foi editado para ser direto e conciso. Quando precisei dessa resposta, tive que ler a página inteira para descobrir a resposta correta. De fato, desisti de ler a resposta aceita e apenas fui help sete li isso. Eu 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 pressupõe que a qualquer momento o leitor possa parar, sendo que cada frase e parágrafo seguinte será menos importante que o processo. É o meu estilo SO no unix se.
dlamblin