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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts