O que fazer passando os parâmetros -xe para / bin / bash

50

Exatamente o que o título diz. Não estou tendo muita sorte em encontrar a documentação apropriada para ver o que -xe faz no seguinte caso de uso:

#!/bin/bash -xe

o que esses parâmetros fazem e onde estão documentados?

    
por imaginative 22.05.2012 / 03:13

6 respostas

49

Se você ler a página de manual de bash , encontrará o seguinte na parte superior da seção OPTIONS :

 All of the  single-character shell options documented in the
 description of the set builtin command can be used as options when the
 shell is invoked. In addition, bash interprets the following options
 when it is invoked...

E se você ler a documentação do comando set mais tarde na man page, você encontrará:

 -e      Exit  immediately  if a pipeline (which may consist of a
 single simple command),  a subshell command enclosed in parentheses,
 or one of the commands executed as part of a command list enclosed by
 braces (see SHELL GRAMMAR above) exits with a non-zero  status. 

 -x      After expanding each simple command, for command, case
 command, select command, or arithmetic  for  command,  display
 the  expanded value of PS4, followed by the command and its
 expanded arguments or associated word list.

Em outras palavras, -e faz o shell sair imediatamente sempre que algo retorna um erro (isto é freqüentemente usado em scripts shell como mecanismo de segurança contra falhas) e -x permite a execução detalhada de scripts que você pode ver o que está acontecendo.

    
por 22.05.2012 / 03:23
9

Digite o seguinte no seu console para obter uma explicação dos argumentos BASH:

bash -c "help set"

Para responder à sua pergunta:

-e Sair imediatamente se um comando sair com um status diferente de zero.

-x Imprimir comandos e seus argumentos à medida que são executados.

    
por 22.05.2012 / 03:25
4

A partir da página de manual :

All of the single-character shell options documented in the description of the set builtin command can be used as options when the shell is invoked.

Então dê uma olhada no set builtin .

    
por 22.05.2012 / 01:46
2

Você está pensando nas coisas em que você definiu -x set -e set -...? executar help set fornece isso.

    
por 22.05.2012 / 01:45
0

Where is the best place to read documentation on what parameters that are passed to bash such as -x and -e are? I tried the man 1 bash, but it doesn't seem to be covered there.

Leia a seção OPTIONS da manpage do basj.

    
por 22.05.2012 / 03:43
0

Eu uso um excelente Manual de Referência do Bash como documentação completa para a linguagem Bash. Eu achei mais útil do que as páginas do manual. A seção relevante para você (descrição dos switches -e, -x pode ser encontrada aqui: conjunto construído

    
por 22.05.2012 / 08:00