|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Messaggi: n/a
|
controllo sintassi stringhe
ciao a tutti!
ho una curiosità.. c'è modo in linux di testare la correttezza della sintassi di una stringa data in input? se ad esempio inserisco una stringa tipo "abc" oppure "ab" oppure "bac" oppure "c" (e così via) allora la stringa è corretta, se invece inserisco una stringa tipo "axs" oppure "zt" oppure "abi" in teoria dovrei dare un messaggio di errore.. ossia, la stringa è corretta solo se è formata dalle lettere a,b e c.. c'è modo di fare un test del genere? grazie! ![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Cerca di essere un po' più dettagliato. Devi modificare un programma? Uno script? Quale linguaggio devi usare?
|
![]() |
![]() |
![]() |
#3 |
Messaggi: n/a
|
si, scusa non ho specificato, devo usarlo in uno script..
in sostanza voglio che l'utente che vuole controllare se certi file hanno certi permessi mi possa inserire stringhe come "xrw" "rwx" "x" "wx" ma non ad esempio "ald" "xsw" "xad" ecc ecc.. ho pensato alle regex ma non sono in grado di trovare il modo di confrontare la mia stringa con una regex NE' ho trovato la regex adatta! ![]() PS: sono una ragazza! ![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Per confrontare puoi usare grep e un if in questo modo
Codice:
echo "stringa" | grep "regex" >/dev/null if [ $? == 0 ]; then echo "ok c'è un match" else echo "niente da fare" fi |
![]() |
![]() |
![]() |
#5 |
Messaggi: n/a
|
perfetto! dopo provo e ti so dire!
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
bash ha già il controllo del match di regular expression, per matchare che la variabile pippo sia composta solo dalle lettere xwr (qualsiasi cardinalità) puoi usare:
if [[ $pippo =~ ^[rwx]+$ ]] then echo "ok" else echo "ko" fi |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
|
![]() |
![]() |
![]() |
#8 |
Messaggi: n/a
|
perfetto!
grazie mille! ![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:43.