[Risolto] Aprire file casuale da cartella con vlc

Se avete dubbi o domande sulla programmazione in generale, fatele qui
Rispondi
Avatar utente
dieghen89
Little John
Messaggi: 1310
Iscritto il: 28 novembre 2008, 17:53
Località: Provincia di Udine
Contatta:

Messaggio da dieghen89 » 28 agosto 2010, 19:57

Ciao ragazzi, oggi stavo provando a fare uno scriptino in bash per aprire con vlc un file video casuale contenuto in una cartella, ma c'è qualcosa ancora che mi sfugge...Lo script è il seguente:

Codice: Seleziona tutto

#!/bin/bash

cartella="/media/DATI/Video"
echo `ls -la $cartella | awk '{print $9}'` > ~/.random
numelementi=`ls $cartella | wc -l`
casuale=`echo $(expr $RANDOM % $numelementi)`
play=`head -n $casuale ~/.random | tail -1`
vlc $play
rm ~/.random
L'unico problema sembrerebbe che quando butto l'output di ls -la dentro .random non mi mette a capo ogni riga ma uno dopo l'altro quindi non posso filtrarli poi con l'head e il tail...

Poi verrà fuori il problema degli spazi nei file ma questo è un altro discorso...

Intanto grazie :)
Ultima modifica di dieghen89 il 30 agosto 2010, 20:15, modificato 1 volta in totale.
XPS 13 Developer Edition i7-4650U/hd5000 + KDE
Eeepc 1015PEM Black + KDE Minimal + kernel-netbook + acpi-eeepc-1015pem --> GUIDA

zxzxasas
Novello Arciere
Messaggi: 43
Iscritto il: 20 dicembre 2008, 3:13
Località: Salerno

Messaggio da zxzxasas » 28 agosto 2010, 20:23

find $cartella
anzichè ls -la e dovresti risolvere!
If the human brain were so simple that we could understand it, we would be so simple that we couldn' t.
Emerson M. Pugh

psychoweb
Novello Arciere
Messaggi: 108
Iscritto il: 15 luglio 2008, 8:58

Messaggio da psychoweb » 29 agosto 2010, 11:34

Incredibile...ma sai che anche io ho fatto uno script del genere tempo fa?? te lo copio per confrontarlo, dovrebbe ancora funzionare..

Codice: Seleziona tutto

function lrand() {
 find $(pwd) -maxdepth 1 -type f  -exec echo {} ; | sort --random-sort | head -n $1
}
è un po' diverso dal tuo per approccio, per alcuni comandi o programmi è sufficente metterlo in apici inversi, tipo

Codice: Seleziona tutto

programma `lrand 30`
programma $(lrand 30)

Avatar utente
dieghen89
Little John
Messaggi: 1310
Iscritto il: 28 novembre 2008, 17:53
Località: Provincia di Udine
Contatta:

Messaggio da dieghen89 » 30 agosto 2010, 20:14

Grazie ragazzi! Ho risolto in questo modo:

Codice: Seleziona tutto

#!/bin/bash

cartella="/media/DATI/Video"
numelementi=`ls $cartella | wc -l`
let numelementi=$numelementi+1
casuale=`echo $(expr $RANDOM % $numelementi)`
play=`ls $cartella | head -$casuale | tail -1`
vlc $cartella/$play
XPS 13 Developer Edition i7-4650U/hd5000 + KDE
Eeepc 1015PEM Black + KDE Minimal + kernel-netbook + acpi-eeepc-1015pem --> GUIDA

Rispondi