Alle lunedì 21 gennaio 2008, Marco Ciampa ha scritto: > Cosa sbaglio? > > voglio cercare su bootparam il numero di runlevel senza indicarlo > esplicitamente, come da man bootparam. > La seguente espressione regolare, pur essendo giusta, sed non la digerisce. > RL=$(sed -e '/\(^|.* \)\([09]\)\( .*|$\)/\2/g' /proc/cmdline) > Perché? Non hai escapato i "|" Ecco quella corretta: RL=$(sed -e 's/\(^\|.* \)\([0-9]\)\($\| .*\)/\2/' /proc/cmdline) Che però ha un altro bug... se la stringa che ottieni è di lunghezza maggiore di 1 allora non c'è nessun numero singolo isolato. quindi per farla lunga: RL=$(sed -e 's/\(^\|.* \)\([0-9]\)\($\| .*\)/\2/' /proc/cmdline) if [ `echo -n $RL | wc -c` != 1 ]; then RL=`cat /etc/inittab | grep initdefault | sed -e 's/.*:\([0-9]\):.*/\1/'` fi e se è vuota non è impostato nessun RL di default, dunque me lo prendo da /etc/inittab -- ESC:wq