Ciao Piviul, Il giorno ven, 16/12/2011 alle 10.46 +0100, Paolo Sala ha scritto: > Ciao a tutti, ho visto che lenny di default installa dash invece di > bash. Qualcuno mi ha suggerito di migrare gli script bash in dash perché > è più veloce e soprattutto è standard e quindi portabile e > multipiattaforma. Benissimo, mi sono allora armato di pazienza e mi sono > messo a convertire i miei script e mi sono arenato con i test con le > espressioni regolari (per intenderci i test avanzati con [[ ]] e =~ > qualcosa tipo [[ $vartest =~ ^-?[0-0]+$ ]] per vedere se in vartest è un > intero). Qualcuno ha qualche suggerimento a parte usare grep/egrep?
Io prenderei il consiglio con le pinze: la scelta di usare dash anziché bash è fortemente consigliata per tutti quelli che sono gli script, soprattutto quelli presenti nel sistema base, perché dash fa meno cose di bash e richiede meno librerie. bash rimane su tutti i sistemi Debian ed comunque consigliata come shell predefinita per l'interazione con l'utente. Che poi sia più lenta o più veloce dipende dagli specifici script, ad esempio, nel tuo caso, immagino sia più veloce una bash che conosce le RE piuttosto che un giro complicato per ottenere lo stesso risultato usando più comandi. Fai delle prove di velocità tu stesso e poi scegli quale usare. Per verificare se hai un intero puoi forse arrangiarti con «tr», ma non mi viene un metodo semplice per verificare che il segno meno possa essere solo in prima posizione. n=8250987 m=$(echo $n | tr -d '[0-9]') if [ -z "$m" -o "$m" = "-" ] then ... fi oppure con expr: n=8250987 expr "$n" + 0 >/dev/null 2>&1 if [ $? -ne 2 ] then ... fi Ciao, G. -- Per REVOCARE l'iscrizione alla lista, inviare un email a [email protected] con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a [email protected] To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/1324037007.5735.25.camel@scarafaggio

