Discussion:
[shell-script] Condicional em comandos no ash ou bourne shell
andrelucio.fc@yahoo.com [shell-script]
2017-04-20 14:35:00 UTC
Permalink
Opa, pessoal.

Estou com o seguinte problema, preciso verificar se o comando foi executado com sucesso ou não através através de algum comando condicional, a questão é, preciso que seja feito no sh (bourne shell) ou ash.

Alguém passou por uma experiência igual?

Desde já agradeço.
Terminal Root terminalroot.com.br@gmail.com [shell-script]
2017-04-20 16:08:05 UTC
Permalink
echo $?
Se for zero, executou com sucesso
Post by ***@yahoo.com [shell-script]
Opa, pessoal.
Estou com o seguinte problema, preciso verificar se o comando foi
executado com sucesso ou não através através de algum comando condicional,
a questão é, preciso que seja feito no sh (bourne shell) ou ash.
Alguém passou por uma experiência igual?
Desde já agradeço.
William Alves dos Santos williamalvessantos@gmail.com [shell-script]
2017-04-20 16:11:18 UTC
Permalink
​Para saber se foi concluído com sucesso o comando, é só obter o valor de:
$?

valor: "0" sucesso
valor: "1" erro​

Abraços

*William Alves dos Santos*
Cel.: (11) 99616 8602 - VIVO
Cel.: (11) 96835 8172 - TIM
Post by ***@yahoo.com [shell-script]
Opa, pessoal.
Estou com o seguinte problema, preciso verificar se o comando foi
executado com sucesso ou não através através de algum comando condicional,
a questão é, preciso que seja feito no sh (bourne shell) ou ash.
Alguém passou por uma experiência igual?
Desde já agradeço.
andrelucio.fc@yahoo.com [shell-script]
2017-04-20 16:14:15 UTC
Permalink
Opa, Terminal.

Obrigado pela resposta.

Estou utilizando a forma que você informou no meu script, porém, eu gostaria de saber se existe uma forma de testar o comando através do if ou [.
Alfredo Casanova atcasanova@gmail.com [shell-script]
2017-04-20 16:32:49 UTC
Permalink
Andre, não precisa testar em um if. Você pode usar os operadores lógicos &&
(AND) e || (OR).

Assim:
ls *.mp3 || echo "Nenhum arquivo mp3 encontrado"

o OU será executado caso o ls *.mp3 não retorne arquivos

ou:

grep -q username /etc/passwd && echo "Usuario encontrado" || echo "Usuario
nao encontrado"
Post by ***@yahoo.com [shell-script]
Opa, Terminal.
Obrigado pela resposta.
Estou utilizando a forma que você informou no meu script, porém, eu
gostaria de saber se existe uma forma de testar o comando através do if ou
[.
Jonathan Lessa jonathanlessa@gmail.com [shell-script]
2017-04-20 16:29:11 UTC
Permalink
Não sei se é exatamente isso que vc deseja, mas vc pode testar o sucesso da
execução de um comando usando && e || logo após o comando:

sh-4.1$ cat arquivo && echo OK || echo ERRO
cat: arquivo: No such file or directory
ERRO
sh-4.1$ echo Conteudo > arquivo
sh-4.1$ cat arquivo && echo OK || echo ERRO
Conteudo
OK
Post by ***@yahoo.com [shell-script]
Opa, Terminal.
Obrigado pela resposta.
Estou utilizando a forma que você informou no meu script, porém, eu
gostaria de saber se existe uma forma de testar o comando através do if ou
[.
--
Att.:
Jonathan Lessa
Licenciado em Informática
William Alves dos Santos williamalvessantos@gmail.com [shell-script]
2017-04-20 16:17:46 UTC
Permalink
Sim, existe.

Execute o comando, e teste o comando com o IF se der erro, você poderá
concatenar a mensagem de sua preferência em um log, ou quebra a execução.

Abraços

*William Alves dos Santos*
Cel.: (11) 99616 8602 - VIVO
Cel.: (11) 96835 8172 - TIM
Post by ***@yahoo.com [shell-script]
Opa, Terminal.
Obrigado pela resposta.
Estou utilizando a forma que você informou no meu script, porém, eu
gostaria de saber se existe uma forma de testar o comando através do if ou
[.
Loading...