Problema com && [RESOLVIDO]

1. Problema com && [RESOLVIDO]

Aldefax G. Kuhn
agk

(usa Debian)

Enviado em 05/10/2005 - 19:08h

Sou iniciante em Shell Script, sempre Utilizei em meus scripts os parâmetros && após comandos que demandem mais tempo, para que o scripts aguarde terminar o comando e em seguida continue a execução do mesmo.
Sempre funcionou, de alguns dias para cá, depois de uma atualização do Debian não funciona mais, dá um erro e não conclui o script.
Tem alguma outra forma de fazer com que o script aguarde a conclusão de algum comando antes de prosseguir sua execução?


  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 06/10/2005 - 11:10h

Bem,
o && é um condicional de execução, ou seja, ele continuará a execução do script caso o comando anterior tenha sido bem sucedido.

em

#!/bin/bash
ls -la &&

Repare que depois de && não existe nada para ser executado.

agora experimente

#!/bin/bash
ls -la && echo

O que vai acontecer ? O comando echo vai ficar esperando o status de execução do comando ls -la, se tudo der certo, ok, o echo é executado, senão ele não é executado, uma alternativa mais completa, temos:

#!/bin/bash
ls -la && echo "ok" || echo "erro"

Outra alternativa é fazer um if com a variável "$?"


3. O erro que resulta

Aldefax G. Kuhn
agk

(usa Debian)

Enviado em 05/10/2005 - 19:10h

Esqueci de colocar o erro que ocorre:
sh teste.sh
teste.sh: line 3: syntax error: unexpected end of file

cat teste.sh
#!/bin/bash
ls -la &&



4. Re: Problema com && [RESOLVIDO]

Tiago Barcellos Peczenyj
pacman

(usa Ubuntu)

Enviado em 25/10/2005 - 00:10h

perai, um shell script não vai pra proxima linha sem ter terminado o comando da linha em questão EXCETO se vc colocar o programa em questão em background.

o que vc pode fazer é esperar que o programa em questão termine, verificando de tempos em tempos se o PID está ativo. algo tipo

running(){ ps $1 | grep -q $1 }
comando &
PID=$!
while running $PID
do echo "eu estou esperando o programa terminar"
done

estou de sacanagem... pode colocar um sleep 1 no lugar desse echo ;-)


5. Running

Ronaldo Terranova
terranova

(usa Debian)

Enviado em 04/11/2008 - 15:49h

Não entendi de onde esta vindo esse running que esta no while, nem a linha running(){ ps $1 | grep -q $1 }, onde esta linha deve ser colocada ???


6. Re: Problema com && [RESOLVIDO]

Gilberto B. Terra Jr.
terra.jr

(usa elementary OS)

Enviado em 11/09/2009 - 15:19h

O running() {}

No caso é o nome da função amigo.

Veja que se as condicoes estiverem certas ele retorna true.

Entao ele usa um WHILE running

Assim ele executa aquilo, ate que a funcao running for true, caso contrario ele sai do laco WHILE.

Entendeu?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts