PDA

Visualizza la versione completa : [BaSH] find e predicato non valido


Kamui
25-06-2004, 10:09
Perch questo funziona:


type="d"
find . -type $type


e questo no?


type="-type d"
find . $type

Mi dice proprio "find: predicato `-type d' non valido" :confused:

Kamui
25-06-2004, 10:14
L'espressione esatta che uso questa:



type="d"
find $radice$target -type $type -exec chmod $flag \{\} \;
[OK]

type="-type d"
find $radice$target $type -exec chmod $flag \{\} \;
[ERRORE]


:ciauz:

pierluigi p
25-06-2004, 12:15
mi pare un problema di spazi ... stacca ste' vars e
NON SI USANO NOMI DI COMANDI BUILT-IN COME NOMI DI VARIABILE
type e' un comando...
e metti -x nell'invocazione di shell che debugghi...e vedi che gli stai a passa'...
buon div

pierluigi

Kamui
25-06-2004, 12:31
Non un problema di spazi perch la prima versione identica e funziona, inoltre quelle due stringhe devono essere concatenate. Ho provato cmq anche togliendone una. Il nome era provvisorio e avevo gi provato a cambiarlo senza risultati ;)
Cmq con sh -x :


taip="-type d"
find $radice $taip -exec chmod $flag \{\} \;
...
+ find ./tmp/due/ '-type d' -exec chmod g+w- '{}' ';'
find: predicato `-type d' non valido


Pare che mi metta quegli apici ('-type d')... e che il problema sia l... ma perch lo fa? Non ho idea di come risolvere... :fagiano:

pierluigi p
25-06-2004, 12:38
strano qui su' slack curr bash 2.05b no problem financo usando type...
primo tent: sembra che interpreti male...impostare la var con singoli apici per forzare il letterale tipo='-type d'
secondo tent: recupera con ${tipo} il valore
non riusciendo a avere quell'errore vado a tentativi....
ma stai usando sh o bash ?

pierluigi
se serve al volo sto' su
telnet www.slack.z00.it 6666
entra come guest....

Kamui
25-06-2004, 13:06
Avevo gi provato anche ='-type d' ma nulla; ora ho provato anche ${} ma ancora niente.
Anch'io uso bash 2.05b

il fatto che effettivamente da console mi funziona


taip="-type d"; find ./tmp/due/ $taip


Ma nello script no... non posso postarlo tutto perch lunghetto... non so dove possa essere il casotto... cmq le parti pi incriminate son queste:


(" Applica solo sulle directory")
tipo="directory"
taip='-type d'
echo -en "\n Premi un tasto per continuare "
read
break
;;

(" Permessi gruppo")
controllaValidita
echo " Imposta i permessi per il gruppo"
source ./opz3_4.sh
flag="g"$flag
find $radice ${taip} -exec chmod $flag \{\} \;
echo " Permessi $flag conferiti in $target per il gruppo"

echo -en "\n Premi un tasto per continuare "
read
break
;;
:ciauz:

Kamui
25-06-2004, 16:28
up...

Kamui
25-06-2004, 21:17
ri-up

Laurentius
26-06-2004, 10:18
Ho provato, a me non d nessun errore...

Loading