robertobartola ha scritto:...
Ora bisognerebbe capire se per caso esiste la possibilita' di mappare un tasto per cui alla sua pressione si abbia gia' tutto cio', ma forse non e' possibile
(esempio.
Codice: Seleziona tutto
[CTRL-P] = [CTRL-Z] + bg + wait %1 && shutdown -h now
)
...
Il problema è che mentre un comando è in foreground arriva tutto a lui (tramite il suo terminale associato). Quindi qualsiasi cosa tu assegni a CTRL-P questo viene spedito al processo in foreground, a meno che tu non possa indicare al terminale di inviarlo alla bash, ma non ho idea di come si possa fare

.
Spina
P.S. Però attraverso la sequenza CRTL-Z, CTRL-\ è possibile. Basta dire alla bash, che prende possesso del terminale alla pressione di CTRL-Z, di gestire il segnale SIGQUIT (che la bash non gestisce e che viene inviato generlmente tramite CTRL-\ di default, ma lo puoi impostare anche a CTRL-P se vuoi). Per fare questo guarda il man della bash(1) e cerca il comando interno
trap.
Ecco un esempio:
Codice: Seleziona tutto
trap "bg; wait %$(jobs | sed -n '/+/{s/\[\([[:digit:]]*\).*/\1/;p}'); echo casa" SIGQUIT
Dopo aver dato questo comando, prova ad eseguire un comando e poi a premere CTRL-Z (per tornare alla bash) e CTRL-\. Manderai il processo in background e ti metterai ad aspettare la sua conclusione. A processo concluso stampera "casa".
Ovviamente per rendere il tutto automatico devi inserire il comando trap all'interno del file
~/.bash_profile, ad esempio.