O que passa os parâmetros -xe para / bin / bash faz

59

Exatamente o que o título diz. Não estou tendo muita sorte em encontrar a documentação adequada 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?

imaginativo
fonte
Você está falando sobre parâmetros que são passados ​​para o binário BASH ou sobre funções e parâmetros na linguagem de script BASH?
Richard Keller
Referindo-se aos parâmetros que são passados ​​para o binário BASH, como: #! / Bin / bash -xe
imaginativo

Respostas:

56

Se você ler a página de manual, bashencontrará o seguinte na parte superior da OPTIONSseção:

 Todas as opções de shell de caractere único documentadas no
 A descrição do comando set builtin pode ser usada como opções quando o
 shell é invocado. Além disso, o bash interpreta as seguintes opções
 quando é invocado ...

E se você ler a documentação do setcomando posteriormente na página de manual, encontrará:

 -e Saia imediatamente se um pipeline (que pode consistir em um
 único comando simples), um comando subshell entre parênteses,
 ou um dos comandos executados como parte de uma lista de comandos incluída por
 chaves (consulte SHAM GRAMMAR acima) sai com um status diferente de zero. 

 -x Após expandir cada comando simples, para comando, caso
 comando, selecione comando ou aritmética para comando, exibir
 o valor expandido do PS4, seguido pelo comando e seu
 argumentos expandidos ou lista de palavras associada.

Em outras palavras, -efaz com que o shell saia imediatamente sempre que algo retornar um erro (isso geralmente é usado em scripts de shell como um mecanismo à prova de falhas) e -xpermite a execução detalhada de scripts para que você possa ver o que está acontecendo.

larsks
fonte
10

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

bash -c "help set"

Para responder sua pergunta:

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

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

Richard Keller
fonte
4

Na página de manual :

Todas as opções de shell de caractere único documentadas na descrição do comando set builtin podem ser usadas como opções quando o shell é chamado.

Então dê uma olhada no conjunto embutido .

mgorven
fonte
2

Você está pensando nas coisas em que você define -x set -e set -...? correr help setdá isso.

ficando mais sábio
fonte
1
Estou pensando em parâmetros usados ​​como o seguinte: #! / Bin / bash -xe
imaginativo
0

Onde é o melhor lugar para ler a documentação sobre quais parâmetros são passados ​​para o bash, como -x e -e? Eu tentei o homem 1 bash, mas não parece ser coberto por lá.

Leia a seção OPTIONS da página de manual do basj.

fpmurphy
fonte
0

Uso o excelente manual de referência do Bash como documentação completa para o idioma do Bash. Achei isso mais útil do que páginas de manual. A seção relevante para você (descrição dos comutadores -e, -x pode ser encontrada aqui: configure builtin

mzet
fonte