3 581
contributi
(spostamento condizioni complesse, aggiunto pattern matching con ... e base64 per trattare output qualsiasi) |
m (→Condizioni avanzate con pattern matching: correzione) |
||
Riga 365: | Riga 365: | ||
* confronti lessicografici tra stringhe con <code><</code> e <code>></code> (NOTA: non esistono "<=" e ">="). In '''bash''' (non ''POSIX'') esistono anche con <code>[...]</code>, ma con quel comando vanno quotate o precedute dal carattere di escape <code>\</code> (ossia: <code>\<</code> e <code>\></code>) perché sono caratteri speciali e soltanto le parole chiave possono permettere regole speciali al loro interno; | * confronti lessicografici tra stringhe con <code><</code> e <code>></code> (NOTA: non esistono "<=" e ">="). In '''bash''' (non ''POSIX'') esistono anche con <code>[...]</code>, ma con quel comando vanno quotate o precedute dal carattere di escape <code>\</code> (ossia: <code>\<</code> e <code>\></code>) perché sono caratteri speciali e soltanto le parole chiave possono permettere regole speciali al loro interno; | ||
* l'uso di espressioni regolari estese con <code>=~</code> nel pattern matching per la stringa alla destra dell'operatore. | * l'uso di espressioni regolari estese con <code>=~</code> nel pattern matching per la stringa alla destra dell'operatore. | ||
Si noti che soltanto gli ultimi due operatori non hanno un equivalente ''POSIX'', e l'ordine lessicografico dipende dalle impostazioni locali, e potrebbe restituire risultati diversi su sistemi con impostazioni diverse. Va ricordato, | Si noti che soltanto gli ultimi due operatori non hanno un equivalente ''POSIX'', e l'ordine lessicografico dipende dalle impostazioni locali, e potrebbe restituire risultati diversi su sistemi con impostazioni diverse. Va ricordato che, anche se si applicano regole speciali per le ''keywords'', è '''sbagliato''' non quotare le stringhe o le variabili, salvo si voglia utilizzare il pattern matching su tutta la parte non quotata: | ||
<pre> | <pre> | ||
[[ "$var" == "${prefisso}"* ]] # successo se $var inizia con $prefisso | [[ "$var" == "${prefisso}"* ]] # successo se $var inizia con $prefisso | ||
Riga 374: | Riga 374: | ||
[[ "$var" != *[!A-Za-z0-9]* ]] # successo se $var contiene solo caratteri alfanumerici (solo lettere base e numeri) | [[ "$var" != *[!A-Za-z0-9]* ]] # successo se $var contiene solo caratteri alfanumerici (solo lettere base e numeri) | ||
[ - | [ -n "${var##*[!A-Za-z0-9]*}" ] # equivalente (POSIX) | ||
</pre> | </pre> | ||
contributi