Ir ao conteúdo

shell script - ajuda


wagzaum

Posts recomendados

Postado

Pessoal, estou começando com shell script e to fazendo alguns códigos ridículos (mas é assim que se começa haha) então vou postar um aqui que basicamente seria para fazer um download de alguma coisa da net. É mais para treinar mesmo. Aí vai:

#! /bin/bash

#PRograma para baixar algumas coisas da net

let num;

let cont=0;

echo "Vamos testar baixar um link do baixaki:";

echo "continuar(Digite 1)?";

echo "Sair(Digite 0)?";

read num;

while((cont == 0))

do

if [[num == 1]] then

wget http://www.baixaki.com.br/site/dwnld34735.htm;

cont=1;

else

cont=0;

fi

done

exit 0;

O que eu poderia fazer de melhor?

Preciso por ; no final de cada linha de comando como no C?

Tá dando erro ali no else e não sei porque. Alguém saberia? (tenho certeza que é algo extremamente ridículo ygsadqgyasdq)

Preciso declarar variáveis como sendo strings, inteiros ou float ou o proprio shell identifica tudo?

abraço!

  • Membro VIP
Postado

Seguinte, sua lógia está errada. Deve ser dessa maneira:


#!/bin/bash
#let num
#let count=0
count=0;
num=99;
#echo " Teste "
#read num
#echo $num
while [ $count = 0 ]
do
echo "teste"
read num
if [ $num = 0 ]; then
echo " deu certo";
count=1;
else
count=0;
fi
# echo $count
done
exit

Seguinte, para comparação de inteiros, tu deves prestar a atenção nos colchetes e a comparação. No linux, comparar inteiros, é daquela maneira. O ";" só se usa quando em casos especiais, como no IF, FOR, onde o código de condição for maior que uma linha. Ou, senão, quando tu irá utilizar em uma linha, várias atribuições, como count=0;I=0,NUM=0.

A sua lógica não fazia sentido, se queres testar a resposta de uma pergunta várias vezes, deves colocar a condição dentro do loop, não fora.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...