Como desfazer 'set -x'?

68

Eu digitei set -x no terminal.

Agora o terminal continua imprimindo o último comando executado no topo 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 man para set , como eu desativo set -x ?

    
por lonewarrior556 07.08.2014 / 20:54

4 respostas

69

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.

Tenha em atenção que alguns sistemas têm páginas man para builtins de shell, mas estas páginas de manual só estão correctas se estiver a utilizar a shell predefinida. No Linux, você pode ter páginas man que apresentam comandos POSIX, que aparecerão para built-in de shell, porque não existe uma página man de um utilitário independente para sombrear; Estas páginas man estão corretas para todas as shells no estilo Bourne (dash, bash, * ksh e até zsh), mas normalmente incompletas.

Consulte Como ler e pesquisar páginas de manual longas para obter dicas sobre como pesquisar para um embutido em uma longa página de manual de shell.

Neste caso, a resposta é a mesma para todos os shells ao estilo Bourne. Se set -LETTER ativar uma opção, set +LETTER desativará. Assim, set +x desativa os rastreios. O último traço que lê set +x é inevitável (exceto deixando o shell sair - às vezes você pode usar um subshell (set -x; command to trace; other command to trace); command that is not traced ).

    
por 08.08.2014 / 03:20
50

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

    
por 07.08.2014 / 21:04
17

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

Extrair o formulário help set :

Using + rather than - causes these flags to be turned off.

Então, digite set +x

    
por 07.08.2014 / 21:38
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 em set , porque, como você vê abaixo:

$ type set

set é um shell especial embutido. Embora documentado na página man 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 longa para resolver. A informação efetiva que você precisava para desfazer o seu -x está no final antes de Exit Status: e diz:

Using + rather than - causes these flags to be turned off. The flags can also be used upon invocation of the shell. The current set of flags may be found in $-. The remaining n ARGs are positional parameters and are assigned, in order, to $1, $2, .. $n. If no ARGs are given, all shell variables are printed.

    
por 26.03.2018 / 14:22

Tags