Discussion:
[shell-script] Saída de erro similar a expansão de parâmetros do bash
Terminal Root terminalroot.com.br@gmail.com [shell-script]
2018-03-01 23:35:27 UTC
Permalink
Salve, galera!

Seguinte, como posso "emular" a saída de erro do comando:

$ ${param:?palavra}
bash: param: palavra

TÎ tentando verificar a saída de erro similar com if e não consigo, ex.:

$ [[ -z "$param" ]] && echo palavra 1>&2
palavra

Queria que saísse igual ao padrão: *bash: param: palavra*
itamarnet@yahoo.com.br [shell-script]
2018-03-02 14:47:49 UTC
Permalink
Caro Terminal Root

É só escreve explicitamente:


$ [[ -z "$param" ]] && echo bash: param: palavra >&2



Isso não serve? Entendi errado?


[]'s
Itamar
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2018-03-02 15:07:53 UTC
Permalink
Vamos esmiuçar o que vc fez:

$ ${param:?palavra}
bash: param: palavra

Nesse exemplo param é o nome de uma variável que, caso não esteja definida,
será dada a msg de erro palavra. Tb poderia ser:

$ : ${param:?A variável \$param não está definida} # Prefiro usar expansão
com um cmd e o cmd : não faz nada
bash: param: A variável $param não está definida

Continuando a resposta se isso estivesse dentro do script chamado scrp.sh a
msg de erro seria:

scrp.sh: param: A variável $param não está definida

Ou seja o primeiro campo é o nome do prog (no prompt é o bash), o segundo o
nome da variável e o terceiro a msg de erro, assim sendo, para fazer sem
expansão de parâmetros (que é mais rápida), vc deveria fazer:

[[ $Parm ]] || echo $0: Parm: MSG DE ERRO >&2





Abraços,
Julio

*» Não tem tempo para fazer um curso presencial?*
*» Na sua cidade não tem nenhum bom curso de Linux?*
*» O treinamento está muito caro?*

*Ministramos um excelente treinamento de Shell,*
*no **formato EAD. **Veja os detalhes aqui.*
<http://www.dicas-l.com.br/programacao-shell-linux/>

*Damos treinamento em sua empresa **com certificado*
*e nota fiscal **por **um preço, **no mínimo, 50% **abaixo*
*de qualquer curso.*

​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
*Best Sellers​ ​*​laureados ​sobre os temas.. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by Terminal Root ***@gmail.com [shell-script]
Salve, galera!
$ ${param:?palavra}
bash: param: palavra
$ [[ -z "$param" ]] && echo palavra 1>&2
palavra
Queria que saísse igual ao padrão: *bash: param: palavra*
Terminal Root terminalroot.com.br@gmail.com [shell-script]
2018-03-02 22:48:34 UTC
Permalink
[RESOLVIDO]

Excelente! Valeu Júlio Neves e Itamar, ambos informaram exatamente o que eu
precisava!
Cheguei até imprimir esse e-mail =)

Muito obrigado!
Post by Terminal Root ***@gmail.com [shell-script]
$ ${param:?palavra}
bash: param: palavra
Nesse exemplo param é o nome de uma variável que, caso não esteja
$ : ${param:?A variável \$param não está definida} # Prefiro usar
expansão com um cmd e o cmd : não faz nada
bash: param: A variável $param não está definida
Continuando a resposta se isso estivesse dentro do script chamado scrp.sh
scrp.sh: param: A variável $param não está definida
Ou seja o primeiro campo é o nome do prog (no prompt é o bash), o segundo
o nome da variável e o terceiro a msg de erro, assim sendo, para fazer sem
[[ $Parm ]] || echo $0: Parm: MSG DE ERRO >&2
Abraços,
Julio
*» Não tem tempo para fazer um curso presencial?*
*» Na sua cidade não tem nenhum bom curso de Linux?*
*» O treinamento está muito caro?*
*Ministramos um excelente treinamento de Shell,*
*no **formato EAD. **Veja os detalhes aqui.*
<http://www.dicas-l.com.br/programacao-shell-linux/>
*Damos treinamento em sua empresa **com certificado*
*e nota fiscal **por **um preço, **no mínimo, 50% **abaixo*
*de qualquer curso.*
​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by Terminal Root ***@gmail.com [shell-script]
Salve, galera!
$ ${param:?palavra}
bash: param: palavra
$ [[ -z "$param" ]] && echo palavra 1>&2
palavra
Queria que saísse igual ao padrão: *bash: param: palavra*
Loading...