Log in

View Full Version : Unix Shell /bin/sh



Hardcore
31st January 2008, 12:26
Allora sto scrivendo uno script che cerca nelle dir di una gerarchia se sono presenti file che cominciano con le lettere PE
il metodo è ricorsivo ecc.
il problema sta nel confronto tra stringhe.
copio il codice :

#All'interno della directory eseguo la ricerca dei file
for i in *
if -f $i -a PE = $i*


Allora il problema sta in PE = $i*
io voglio che se trova un file che comincia con PE es. pera,pene,pellagra faccia qualcosa, ma a quanto pare PE = $i* nn è permesso, mi da infatti l'errore troppi valori nel test..
come si fa QQ?

Jarsil
31st January 2008, 18:58
Allora sto scrivendo uno script che cerca nelle dir di una gerarchia se sono presenti file che cominciano con le lettere PE
il metodo è ricorsivo ecc.
il problema sta nel confronto tra stringhe.
copio il codice :
#All'interno della directory eseguo la ricerca dei file
for i in *
if -f $i -a PE = $i*
Allora il problema sta in PE = $i*
io voglio che se trova un file che comincia con PE es. pera,pene,pellagra faccia qualcosa, ma a quanto pare PE = $i* nn è permesso, mi da infatti l'errore troppi valori nel test..
come si fa QQ?

Io personalmente farei un passaggio diverso, ma a te la scelta, utilizzerei una variabile "parcheggio" contenente l'output di un ls -l

Provo a scriverla a memoria




LIST = `ls -l $DIRECTORY`

for NOME in $LIST; do

if [ ${$NOME:0:2} -eq "PE" ]; then
"esegui quello che vuoi"
fi

done



E' grossolano e non sono sicuro che funzioni, ma è la base da cui partirei :)