2017-05-13 2 views
0

Lorsque je double-clique sur mon fichier .command, il lit chaque ligne jusqu'à ce qu'il atteigne la commande nohup qui termine l'application (Terminal) lorsqu'elle s'exécute en arrière-plan.Le fichier de commande (lorsque double-cliqué) ne fonctionne pas si ce code n'est pas inséré ... pourquoi?

Maintenant, lorsque vous entrez cette commande en haut du script, tout le script fonctionne. Pourquoi diable cela arriverait-il?

exec 3>&1 4>&2 
trap 'exec 2>&4 1>&3' 0 1 2 3 
exec 1>/Users/$username/Desktop/log.out 2>&1 

Répondre

0

Apperently quand je suis en cours d'exécution de cette commande dans le script:

nohup osascript -e 'tell application "Terminal" to do script "'"$DIR"'"' & pkill -f -a Terminal 

avec fin à l'application pkill crée des problèmes pour le script global. Ainsi, perturber le signal SIGHUP. Ma solution est la suivante ...

trap '' 1 # this blocks sighup so we don't die when terminal is closed 

Merci à izabera de Freenode Chat - canal #bash.