Il problema in cui sono incappato è il seguente:
In una directory ho creato 3 liste di files con find e le ho chiamate classica, rock e new_age. Le voglio dare in pasto a mpg321 in modo che riproduca i files che ci sono in quelle liste, e fin qui non ho problemi.
Adesso sto scrivendo lo script che deve lanciare mpg321 con gli argomenti corretti in base alla lista che voglio far suonare.
Lo script sarà lanciato con un unico argomento che sarà il nome della playlist che voglio suonare, ad esempio lo lancerò con:
Codice: Seleziona tutto
mioscript.sh rock
In questo script tramite una funzione salvo in 3 variabili le 3 playlist in questo modo:
Codice: Seleziona tutto
rock=/percorso/di/rock.txt
classica=/percorso/di/classica.txt
new_age=/percorso/di/new_age.txt
Il problema sorge nel momento in cui provo a lanciare mpg321 dandogli come argomento $1 in quanto la bash mi darà il valore di $1 e quindi "rock", invece io vorrei che mi desse il valore della variabile corrispondente ad $1... come faccio??
Questo è lo script:
Codice: Seleziona tutto
#! /bin/bash
E_NOPLAYLISTARG=71
E_PLAYLISTFILE_NOT_AVAILABLE=72
E_WRONGPLAYLIST=73
PLAYLISTDIR=/home/media/musica/playlists
PLAYLISTFILE=/home/danix/.myp3player/playlists.txt
show_playlists () {
for LIST in ${PLAYLISTDIR}/* ;do
basename $LIST |cut -d '.' -f 1
done
}
create_playlistfile () {
if [[ -f $PLAYLISTFILE || -s $PLAYLISTFILE ]];then
rm -f $PLAYLISTFILE
fi
for LIST in ${PLAYLISTDIR}/* ;do
echo $(basename $LIST |cut -d '.' -f 1)=$LIST >> $PLAYLISTFILE
done
source $PLAYLISTFILE
}
create_playlistfile
if [ -z $1 ];then
echo "Non so quale playlist riprodurre."
echo "Questa è la lista delle playlist disponibili"
show_playlists
exit $E_NOPLAYLISTARG
else
grep $1 $PLAYLISTFILE &> /dev/null
if [ $? -eq 0 ];then
# while true; do
# mpg321 -Z --list $1
# done
echo $1
else
echo "La playlist richiesta è inesistente"
exit $E_WRONGPLAYLIST
fi
fi
Grazie mille a tutti in anticipo!!!