Функция терминала Linux Bash не закрывается по команде - PullRequest
0 голосов
/ 15 мая 2019
#webstorm terminal window
alias webstorm='webstorm . &'
#function for opening and running AdminApp
ws(){ gnome-terminal -e webstorm && nohup && exit;};
aa(){ cd Desktop/code/AdminApp; ws; nodemon --exec npm start;};

Мой ide - это webstorm, я пытаюсь выполнить одну команду, чтобы cd исправил папку, открыл ide и затем запустил сервер локально. По какой-то причине я не могу закрыть терминал идеи, и если я закрываю его вручную, он закрывает идею. Мне также не удалось сделать все в одном терминале.

1 Ответ

0 голосов
/ 15 мая 2019

Вы используете nohup и gnome-terminal -e неверным образом.

С gnome-terminal -e webstorm && nohup && exit вы выполняете три команды в текущей оболочке:

  1. gnome-terminal -e webstorm
  2. nohup
  3. exit

nuhop будет выполняться только после успешного завершения первой команды, но этого не произойдетпока webstorm работает.Если запускается webstorm exits, запускается nohup, но это больше не помогает, тем более что nohup ожидает команду в качестве аргумента и завершится ошибкой, поскольку вы ее не предоставили.

Псевдоним webstorm='webstorm . &', который вы определили ранее, не влияет на gnome-terminal -e, так как -e принимает аргумент string и выполняет эту строку в другой оболочке.Вы должны написать команду.

Вы, вероятно, хотите использовать

ws() { nohup webstorm . & }
...