Ir ao conteúdo

Ajuda com shell script


Biel Castro

Posts recomendados

Postado

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 "----------------------------------------";;

  • Membro VIP
Postado

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

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!