Questione : assicurazione dello scritto di ksh

Ho uno scritto di ksh funzionare su AIX6.1, che sarà fatto funzionare come utente normale (non radice). Il mio scritto invoca altri shell script. Qui è il mio scritto: gatto menu2.ksh
# del

#! /USR/BIN/KSH

CLEAR
ECHO
PRINT “CSIA RBAC -- CONFIGURACION --“settrap del
echo

function {la presa “stampa “del
avete colpito il Control-C! „„ Privados " en RBAC "
print “3) Salir " opcion dei commando del

settrap

print “1) Configurar di INT
} di usuarios del
print “2) Configurar della La del

echo
echo “Seleccione: “
echo

while allineare; il do
ha letto la stampa stampa del in
/> 1) del
“di activos di privilegiados " dei commando “di a) Listar los b) commando di Anadir " stampa del
“di RBAC c) commando di Eliminar
di RBAC " mentre SELECT2 colto; do
caso $SELECT2 activos dei commando di eco “di a„ del in
) “: „ lssecattr del && - c TUTTA|csia di grep|awk “{stampa $1}„; ;
“b„) ./addcmdrbac.ksh; ;
“c„) ./delcmdrbac.ksh; ; rottura 2
del esac
del
fatta; ; stampa del
2) opzione “di a) " un
di opzione b della stampa del
“b) " mentre SELECT2 colto; stampa “del in
“a„ di caso $SELECT2 del do
) selezionato„; ; stampa “B del
“b„) selezionata„; ; rottura 2
del esac
del
fatta; ; rottura del

3); ;
./menu2.ksh del
/> # break
done

Question: il
How può io evitare un tutto l'utente per abbandonare il mio scritto con Ctrol+C o Ctrol+Z, o l'altra uccisione o segnale abbandonare?
Can proteggo questo dallo scritto principale (menu2.ksh)?
class= del

Risposta : assicurazione dello scritto di ksh

Ciao ancora e spiacente!

Ho trascurato che state usando ovviamente la versione dell'eredità del ksh, che è standard per l'AIX.

In contrasto con il più nuovo ksh93 (che uso per gli scritti casalinghi), mettere l'ordine della presa in una funzione realmente non è sostenuto con il ksh! Funzionerà soltanto all'interno della funzione e non nello scritto di chiamata!

Così potreste o commutare a ksh93 (sostituendo #! /bin/ksh con #! /bin/ksh93, ma controllano prego completamente per vedere se c'è la compatibilità)), o dovete cedere using una funzione.

In ogni modo (ksh o ksh93) potreste mettere “la presa„ ordine„ in una lima e “in una fonte autonome„ esso dove avuto bisogno di.

1) Generare una lima che contiene appena il TERMINE RINUNCIATO HUP di INT del "" della presa e denominare questa lima per esempio /etc/ignoretrap.

2) Aggiungere.  /etc/ignoretrap come la seconda linea a quale scritto ha voluto. Notare “. „ (spazio del puntino) settrap preceding! È importante!

E ciao prego realmente per ignorare le prese using una stringa nulla come l'ordine! Stampare una stringa in molti casi non darà il risultato voluto (che continua lo scritto come se niente accada).

wmp

Altre soluzioni  
 
programming4us programming4us