Problema com Script

1. Problema com Script

Marcos Renan Gomes de Medeiros
rnngomes

(usa Outra)

Enviado em 17/10/2018 - 07:01h

Bom dia a todos. Estou iniciando no Shell Script e estou o seguinte problema:
Crie um script que peça que o usuário digite 3 extensões e crie o arquivo lista.txt, contendo o nome de todos os arquivos do diretório atual que possuem pelo menos uma destas extensões.

Fiz assim:

#!/bin/bash
read -p "Digite uma extenção: " var1
read -p "Digite uma extenção: " var2
read -p "Digite uma extenção: " var3

echo -e "Criando arquivo lista.txt"
touch lista.txt

(ls | grep *".$var1" >> lista.txt) 2> /dev/null
(ls | grep *".$var2" >> lista.txt) 2> /dev/null
(ls | grep *".$var3" >> lista.txt) 2> /dev/null


O meu problema é que os arquivos txt não estão sendo listados no lista.txt(Só que no diretório atual tem arquivos .txt). Os outros arquivos como png e zip estão sendo listados. Alguém consegue resolver?


  


2. Re: Problema com Script

Raimundo Oliveira da Silva
rausilva

(usa Linux Mint)

Enviado em 17/10/2018 - 17:13h

#!/bin/bash
read -p "Digite uma extenção: " var1
read -p "Digite uma extenção: " var2
read -p "Digite uma extenção: " var3

echo -e "Criando arquivo lista.txt"
touch lista.txt

(find *".$var1" >> lista.txt) 2> /dev/null
(find *".$var2" >> lista.txt) 2> /dev/null
(find *".$var3" >> lista.txt) 2> /dev/null


3. Re: Problema com Script

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 17/10/2018 - 21:38h

renangomesdemede escreveu:

Bom dia a todos.
Estou iniciando no Shell Script e estou o seguinte problema:
Crie um script que peça que o usuário digite 3 extensões e crie o arquivo lista.txt, contendo o nome de todos os arquivos do diretório atual que possuem pelo menos uma destas extensões.

Fiz assim:

#!/bin/bash
read -p "Digite uma extenção: " var1
read -p "Digite uma extenção: " var2
read -p "Digite uma extenção: " var3

echo -e "Criando arquivo lista.txt"
touch lista.txt

(ls | grep *".$var1" >> lista.txt) 2> /dev/null
(ls | grep *".$var2" >> lista.txt) 2> /dev/null
(ls | grep *".$var3" >> lista.txt) 2> /dev/null


O meu problema é que os arquivos txt não estão sendo listados no lista.txt(Só que no diretório atual tem arquivos .txt). Os outros arquivos como png e zip estão sendo listados. Alguém consegue resolver?


Boa noite.
Segue sugestão:
for var in var{1..3};do 
read -p "Digite a ${var/var/}ª extenção: " $var;
ls -1 *.${!var} >> lista.txt 2> /dev/null;
done

Obs.:
Não é necessário usar o touch para criar o arquivo.
O próprio redirecionamento ">> lista.txt" cria, se não existir
Note que com o uso do "laço", o script ficou bastante reduzido.

Att.:
Marcelo Oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts