3 581
contributi
(aggiunti esempi e altre opzioni) |
(aggiunta parte per sovrascrivere echo, spostate le condizioni avanzate) |
||
Riga 77: | Riga 77: | ||
<pre> | <pre> | ||
printf %s\\n "ERRORE: il file specificato non esiste!" >&2 # standard error | printf %s\\n "ERRORE: il file specificato non esiste!" >&2 # standard error | ||
</pre> | |||
====Sovrascrivere echo==== | |||
Se non si riesce a fare a meno di <code>echo</code> si può sovrascriverlo per gli usi più basilari, così da utilizzare al suo posto <code>printf</code> in modo trasparente, mettendo queste definizioni in cima allo script subito dopo lo ''shebang'': | |||
<pre> | |||
# sovrascrivo echo | |||
# stampa su schermo con "a capo" finale | |||
echo () { printf %s\\n "$*" ; } | |||
# rimpiazzo per echo -n | |||
# stampa su schermo senza "a capo" finale) | |||
echo_n () { printf %s "$*" ; } | |||
</pre> | |||
Per esempio: | |||
<pre> | |||
#! /bin/bash | |||
# sovrascrivo echo | |||
echo () { printf %s\\n "$*" ; } | |||
# al posto di echo -n | |||
echo_n () { printf %s "$*" ; } | |||
# ora si può usare echo (echo_n) al posto di printf %s\\n (printf %s) | |||
echo "Hello World!" # stampa: Hello World! | |||
echo_n "Hello world!" # stampa: Hello world! (senza "a capo") | |||
echo -n # stampa: -n | |||
echo -e # stampa: -e | |||
exit 0 | |||
</pre> | </pre> | ||
Riga 118: | Riga 150: | ||
* <code>[ "$var" -lt valore ]</code>: ('''l'''ower '''t'''han) vero se l'intero contenuto nella variabile è inferiore del valore dato. | * <code>[ "$var" -lt valore ]</code>: ('''l'''ower '''t'''han) vero se l'intero contenuto nella variabile è inferiore del valore dato. | ||
* <code>[ "$var" -le valore ]</code>: ('''l'''ower or '''e'''qual to) vero se l'intero contenuto nella variabile è inferiore o uguale al valore dato. | * <code>[ "$var" -le valore ]</code>: ('''l'''ower or '''e'''qual to) vero se l'intero contenuto nella variabile è inferiore o uguale al valore dato. | ||
Se una delle due stringhe non è un intero, anche negativo, il confronto fallisce e può esserci la stampa di un messaggio d'errore sullo standard error. Per evitarlo va aggiunto | Se una delle due stringhe non è un intero, anche negativo, il confronto fallisce e può esserci la stampa di un messaggio d'errore sullo standard error. Per evitarlo va aggiunto '''2> /dev/null''' (il significato di tale redirezione sarà trattato in seguito). | ||
Per esempio: | Per esempio: | ||
Riga 133: | Riga 165: | ||
* <code>[ -w "$var" ]</code>: vero se il file esiste e l'utente corrente ha il permesso di scrittura; | * <code>[ -w "$var" ]</code>: vero se il file esiste e l'utente corrente ha il permesso di scrittura; | ||
* <code>[ -x "$var" ]</code>: vero se il file esiste e l'utente corrente ha il permesso di esecuzione (o attraversamento per le directory). | * <code>[ -x "$var" ]</code>: vero se il file esiste e l'utente corrente ha il permesso di esecuzione (o attraversamento per le directory). | ||
===Esecuzione condizionata=== | ===Esecuzione condizionata=== |
contributi