Ir ao conteúdo
  • Cadastre-se
Biel Castro

Ajuda com shell script

Recommended Posts

Olá pessoal! Bom, esse é o meu primeiro tópico aqui. 

Eu tenho que fazer um trabalho sobre shell script onde tenho que criar 5 funções que interajam com o usuário.

Pois bem... Eu já criei as 5 funções e tal... Só que tem um problema: o script não pode exibir erros do terminal..

O que está acontecendo.. é que por exemplo: Na função "Renomear um arquivo", se o usuário digitar o nome de um arquivo que não exista, o terminal mostra o erro, sendo

que eu mostro ao usuário os arquivos existentes no diretório atual dele.

 

Resumidamente o que quero é um jeito de coloca o "IF" para verificar se o arquivo que a pessoa digitou existe no diretório, se sim, executa o resto, se não, volta do começo.

 

echo;
      echo "Arquivos contidos no atual diretório: ";
      echo "----------------------------------------";
      echo "`ls -C /$HOME`";
      echo "----------------------------------------";
      echo ;
      echo "Digite o nome do arquivo que deseja renomear: ";
      read ARQNAME;
      echo "Digite um novo nome para o arquivo: ";
      read ARQNAMA2;
      mv $ARQNAME $ARQNAME2;
      echo ;
      echo "----------------------------------------";
     
echo "`ls -C /$HOME`";
      echo "----------------------------------------";;
echo;

      echo "Arquivos contidos no atual diretório: ";
      echo "----------------------------------------";
      echo "`ls -C /$HOME`";
      echo "----------------------------------------";
      echo ;
      echo "Digite o nome do arquivo que deseja renomear: ";
      read ARQNAME;
      echo "Digite um novo nome para o arquivo: ";
      read ARQNAMA2;
      mv $ARQNAME $ARQNAME2;
      echo ;
      echo "----------------------------------------";
     
echo "`ls -C /$HOME`";
      echo "----------------------------------------";;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples, faça um test:

 

[ -f `echo $ARQNAME` ] && Resto do código || CONDIÇÃO para voltar ao começo

 

Explicando. Tu podes usar ou colchetes ou o if para usar os parâmetros de teste. Aquele & duplo e os pipes são um forma mais rápida de simplicar isso:

 

if [ -f `echo $ARQNAME` ]

then

       bla bla bla

else

       blablablabl

fi

 

Qualquer uma das formas estão certas. 

 

 

Detalhe: Isso só funciona em bash, não em korn.

 

Fonte: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×