Teste com o "if" [RESOLVIDO]

1. Teste com o "if" [RESOLVIDO]

wellington
sarria

(usa Slackware)

Enviado em 15/05/2018 - 20:14h

Boa noite!

Como faço para definir uma ação dentro de um script a partir do tipo de arquivo.
Exemplo:

#!/bin/bash

cd pasta

ls # aqui preciso que o script saiba o que tem dentro da pasta para seguir o próximo passo.

se
pasta entre ;
se não
execute o programa para o arquivo que está aqui.






  


2. MELHOR RESPOSTA

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 16/05/2018 - 09:26h

sarria escreveu:

Boa noite!

Como faço para definir uma ação dentro de um script a partir do tipo de arquivo.
Exemplo:

#!/bin/bash

cd pasta

ls # aqui preciso que o script saiba o que tem dentro da pasta para seguir o próximo passo.

se
pasta entre ;
se não
execute o programa para o arquivo que está aqui.





Veja se esse script atende sua necessidade:

#!/bin/bash

DIRETORIOS=$(ls -al | grep '^d' | awk '{ print $9 }')

ARQUIVOS=$(ls -al | grep '^-' | awk '{ print $9 }')

echo "DIRETÓRIOS"
for dir in $DIRETORIOS;
do
if [ $dir != '.' ]; then
if [ $dir != '..' ]; then
echo $dir
fi
fi
done

echo "ARQUIVOS"
for arq in $ARQUIVOS;
do
echo $arq
done


3. Re: Teste com o "if" [RESOLVIDO]

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 15/05/2018 - 21:57h


Oi.

Acredito que o comando test faz o que você precisa...

use


man test


ou

Veja https://aurelio.net/shell/canivete/pdf/

Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA
Oracle Certified Associate, Java SE Programmer - OCA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/


4. Re: Teste com o "if" [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 15/05/2018 - 22:18h

sarria escreveu:
Boa noite!
Como faço para definir uma ação dentro de um script a partir do tipo de arquivo.


velho ... é uma de vc dizer o q quer fazer q é mais fácil pra gente te dar idéia, pois de repente vc nem precisa de um "if".

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



5. Re: Teste com o "if" [RESOLVIDO]

hp
perito

(usa Debian)

Enviado em 15/05/2018 - 23:02h

sarria escreveu:

Boa noite!

Como faço para definir uma ação dentro de um script a partir do tipo de arquivo.
Exemplo:

#!/bin/bash

cd pasta

ls # aqui preciso que o script saiba o que tem dentro da pasta para seguir o próximo passo.

se
pasta entre ;
se não
execute o programa para o arquivo que está aqui.





tente assim

#!/bin/bash
cd dir
file=$(ls *)
printf "$file\n"



6. Re: Teste com o

wellington
sarria

(usa Slackware)

Enviado em 16/05/2018 - 20:01h

Na verdade eu tenho um pc antigo e vou usar como jukebox, em modo texto com o dialog, e esse teste entraria neste script:
#!/bin/bash

#Entra na pasta que contém as músicas.

cd /Musica

#Cria lista com os tipos de música(pastas) para serem escolhidas no Dialog

ls > /tmp/lista1.txt

LISTA1=/tmp/lista1.txt

PASTA1=$(dialog --stdout --menu 'Escolha o que quer ouvir' 0 0 0 $( cat $LISTA1 | sed 's/$/ \\/'))

cd $PASTA1

#Cria lista com os cantores/bandas(pastas) para serem escolhidas com o Dialog

ls > /tmp/lista2.txt

LISTA2=/tmp/lista2.txt

PASTA2=$(dialog --stdout --menu 'Escolha a Banda' 0 0 0 $(cat $LISTA2 | sed 's/$/ \\/'))

#Cria a lista de albúns(pastas) a serem escolhidos, mas aqui começa o problema, pois, em algumas casos já estão os arquivos de música/video
#onde eu preciso que o script identifique para continuar com a próxima lista ou se ele executa os arquivos.

cd $PASTA2

ls > /tmp/lista3.txt

LISTA3=/tmp/lista3.txt

PASTA3=$(dialog --stdout --menu 'Escolha o Disco' 0 0 0 $(cat $LISTA3 | sed 's/$/ \\/'))

cd $PASTA3

ls -1 *.mp3 > lista.m3u

mpg123 -@ lista.m3u -C


7. Re: Teste com o "if" [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 17/05/2018 - 11:54h

sarria escreveu:

Na verdade eu tenho um pc antigo e vou usar como jukebox, em modo texto com o dialog, e esse teste entraria neste script:



esse teu script já está me dando erro na geração da 2º lista ( creio eu que deveria ser de Cantor )

Gênero/Cantor/Álbum/Músicas 


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



8. Re: Teste com o

wellington
sarria

(usa Slackware)

Enviado em 17/05/2018 - 23:31h

Como eu disse, este vai ser usado só como jukebox, então, tudo abaixo do /Musica está com "_" (underline) e não com " " (espaço) entre palavras.
Usei:
find . '*' | while read line ; do mv "$line" "$(echo $line | sed 's/ /_/g'); done
para renomear...
Antes as listas ficavam confusas no dialog


9. Re: Teste com o

wellington
sarria

(usa Slackware)

Enviado em 18/05/2018 - 22:20h

resolvido ;)

#!/bin/bash

#Entra na pasta que contém as músicas.

cd /Musica

#Cria lista com os tipos de música(pastas) para serem escolhidas no Dialog

ls > /tmp/lista1.txt

LISTA1=/tmp/lista1.txt

PASTA1=$(dialog --stdout --menu 'Escolha o que quer ouvir' 0 0 0 $( cat $LISTA1 | sed 's/$/ \\/'))

cd $PASTA1

#Cria lista com os cantores/bandas(pastas) para serem escolhidas com o Dialog

ls > /tmp/lista2.txt

LISTA2=/tmp/lista2.txt

PASTA2=$(dialog --stdout --menu 'Escolha a Banda' 0 0 0 $(cat $LISTA2 | sed 's/$/ \\/'))

#Cria a lista de albúns(pastas) a serem escolhidos, mas aqui começa o problema, pois, em algumas casos já estão os arquivos de música/video
#onde eu preciso que o script identifique para continuar com a próxima lista ou se ele executa os arquivos.

cd $PASTA2

#resolvido
mp3=$(ls -al | grep '^-' | awk '{ print $9 }')
pasta=$(ls -al | grep '^d' | awk '{ print $9 }')

for dir in $pasta;
do
if [ $dir != '.' ]; then
if [ $dir != '..' ]; then
ls > /tmp/lista3.txt ; LISTA3=/tmp/lista3.txt
fi
fi
done

for arq in $mp3;
do
ls -1 *.mp3 > lista.m3u ; mpg123 -@ lista.m3u -C
done


PASTA3=$(dialog --stdout --menu 'Escolha o Disco' 0 0 0 $(cat $LISTA3 | sed 's/$/ \\/'))

cd $PASTA3

ls -1 *.mp3 > lista.m3u

mpg123 -@ lista.m3u -C

Agradeço a ajuda de todos ;)




  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts