[RISOLTOBASH] Controllo stringhe con determinati intervalli.

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
f4bry90
Prode Principiante
Messaggi: 213
Iscrizione: domenica 3 gennaio 2010, 22:08
Desktop: Xfce
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Pescara

[RISOLTOBASH] Controllo stringhe con determinati intervalli.

Messaggio da f4bry90 »

Salve di nuovo,
sempre una domanda semplice. Vorrei sapere come faccio a controllare se una stringa sia uguale ad un numero determinato di lettere con una sola condizione.

Esempio:

Codice: Seleziona tutto

var="$1"

if [[ "$var" == "s" -a "$var" ==  "S" -a ecc. ecc. ]]; then
    fai qualcosa
else
    fai qualcos'altro
fi
Ecco vorrei raggruppare la condizione dell'if. Grazie mille! :)
Ultima modifica di f4bry90 il sabato 28 aprile 2012, 11:16, modificato 1 volta in totale.
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [BASH] Controllo stringhe con determinati intervalli.

Messaggio da crap0101 »

vuoi testare se $var appartiene a un certo set?
Chiedo perchè quell'if mi lascia un pò perplesso.
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
f4bry90
Prode Principiante
Messaggi: 213
Iscrizione: domenica 3 gennaio 2010, 22:08
Desktop: Xfce
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Pescara

Re: [BASH] Controllo stringhe con determinati intervalli.

Messaggio da f4bry90 »

Scusa ho sbagliato le condizioni, comunque ne sono due di condizioni:

1.

Codice: Seleziona tutto

while [[ "$1" != "s" -a "$1" != "S" -a "$1" != "n" -a "$1" != "N" ]]; do
    qualcosa
done
2.

Codice: Seleziona tutto

if [[ "$1" == "s" -o "$1" == "S" ]]; then
    qualcosa
fi
grazie.
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [BASH] Controllo stringhe con determinati intervalli.

Messaggio da crap0101 »

tipo così?

Codice: Seleziona tutto

crap0101@crap0101-M:~$ var=s
crap0101@crap0101-M:~$ [[ $var =~ ^[sSrRtT]$ ]] && echo ok
ok
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
f4bry90
Prode Principiante
Messaggi: 213
Iscrizione: domenica 3 gennaio 2010, 22:08
Desktop: Xfce
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Pescara

Re: [BASH] Controllo stringhe con determinati intervalli.

Messaggio da f4bry90 »

Si, il codice che mi hai dato tu funziona grazie! Puoi spiegarmi come funzionano quei simboli?
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [BASH] Controllo stringhe con determinati intervalli.

Messaggio da crap0101 »

in sintesi,

Codice: Seleziona tutto

=~
serve per fare confronti usando espressioni regolari, quindi

Codice: Seleziona tutto

VAR =~ REGEX

ti dice se la regex matcha VAR.
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
f4bry90
Prode Principiante
Messaggi: 213
Iscrizione: domenica 3 gennaio 2010, 22:08
Desktop: Xfce
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Pescara

Re: [BASH] Controllo stringhe con determinati intervalli.

Messaggio da f4bry90 »

Ok, ho capito. Invece riguardo:

Codice: Seleziona tutto

 ^[sSrRtT]$ 
?
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [BASH] Controllo stringhe con determinati intervalli.

Messaggio da crap0101 »

quella è la regex, matcha una stringa monocarattere tra quelli compresi nelle parentesi quadre. Ci sono varie notazioni, se non hai idea di cosa si tratta inizia da qua: http://it.wikipedia.org/wiki/Espressione_regolare
e in particolare per bash: http://tldp.org/LDP/abs/html/x17000.html
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
f4bry90
Prode Principiante
Messaggi: 213
Iscrizione: domenica 3 gennaio 2010, 22:08
Desktop: Xfce
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Pescara

Re: [BASH] Controllo stringhe con determinati intervalli.

Messaggio da f4bry90 »

Grazie mille! :)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: Majestic-12 [Bot] e 5 ospiti