Ho questo script chiamato :Ctrl + C per terminare "grunt watch", ma uccide l'editor di Atom che è partito dalla stessa bash, perché?
#!/bin/bash
WS=/home/user/wsjs
cd $WS
nohup atom . &
gnome-terminal
grunt watch
Se l'eseguo in bash:
./wsjs.sh
Poi editor di atomo, gnome-terminal vengono avviati a parte, e la corrente che mostra bash:
[email protected]:~$ ./wsjs.pwd
nohup: appending output to ‘nohup.out’
Running "watch" task
Waiting...
Ora se si preme ctrl + c
, grunt watch
si chiude, ma anche l'editor di atomi BUT è chiuso.
... questo è strano.
Ho inserito manualmente tutti i comandi in bash e l'atomo NON era chiuso. Ho sostituito atomo con gedit e ho eseguito lo script, NON è stato chiuso.
Perché è stato chiuso Atom? Grazie!
È possibile [trap] (http://linuxcommand.org/wss0160.php) il ctrl + c e gestirlo manualmente per annullare solo il comando di controllo grunt. – dan08
Il tuo ctrl + c non sta uccidendo un singolo programma eseguito dallo script - sta uccidendo lo _whole script_. Se si desidera eseguire './Wsjs.pwd' in modo che si comporti come nell'eseguire i comandi in esso singolarmente, eseguire' source wsjs.pwd' invece di './Wsjs.pwd'. –