Enrico Zini ha scritto:
Visto che non ho un account blogger per postare commenti, posto qui:
l'uso di ${pippo:-pluto} non è posix sarca standard: quando si usa quel
costrutto, conviene mettere #!/bin/bash.
Interessante, hai una fonte ? Io ne ho una che dice il contrario:
http://www.opengroup.org/onlinepubs/007908799/xcu/chap2.html#tag_001_006_002
e d'altro canto qui invece suggerisce ${pippo-pluto}
http://sources.redhat.com/autobook/autobook/autobook_217.html#SEC217
e da questa discussione otterrò materiale per il prossimo post.
Per questo, vim colora il
${a:-b} in rosso quando si usa #!/bin/sh e lo colora bene quando si usa
#!/bin/bash.
Per il resto, visto che in bash si usa echo che stampa tutti i
parametri, io preferisco mantenere quell'abitudine e avere una cosa
fatta cosí:
warn () {
echo "$0:" "$@" >&2
}
Di per sè sarebbe meglio, ma complica die().
Rimane il problema di come dare un codice di errore specifico. A me
capita raramente, e si potrebbe concepire qualcosa che passa il valore
"ad bànda":
die () {
warn "$@"
exit ${RES:-1}
}
In effetti il default migliore, come giustamente suggerisce Pod::Usage,
sarebbe 2; comunque a me capita invece di scrivere utility che hanno
codici di ritorno significativi e documentati e quindi mi serve una
forma di die() che faciliti l'espressione del valore di ritorno.
Interessante è anche guardare i sorgenti di /lib/lsb/init-functions
Benchè non abbia nulla contro il codice portabile, anzi, il mio target
è più che altro l'amministratore che scrive script per le proprie
macchine. Per scrivere roba da distribuire mi sembra meglio Perl.
Davide Bolcioni
--
There is no place like /home.
|