Я могу проверить, был ли терминал запущен Кодом Visual Studio?

У меня есть сценарий, который работает каждый раз, когда я открываю терминал (я поместил команду в .bashrc). Теперь, когда я открываю Visual Studio Code, сценарий, очевидно, также выполняется во внутреннем терминале там. Я не хочу, чтобы это произошло. Там какой-либо путь состоит в том, чтобы обнаружить, был ли терминальный экземпляр запущен VSCode, таким образом, я могу препятствовать тому, чтобы сценарий выполнился в этом случае? (Я использую удар),

Извините, если это - немой вопрос, я все еще довольно плохо знаком с Linux и ударом.

2
задан 3 April 2018 в 13:02

2 ответа

Используя этот потенциально дублирующийся ответ: https://askubuntu.com/a/1012277/307523

rick@alien:~$ echo $$
25119
───────────────────────────────────────────────────────────────────────────────────────────
rick@alien:~$ pstree -aps $$
systemd,1 splash fastboot kaslr
  └─lightdm,1026
      └─lightdm,1294 --session-child 12 19
          └─upstart,1838 --user
              └─gnome-terminal-,25109
                  └─bash,25119
                      └─pstree,5696 -aps 25119

Переменная среды $$ возвращает текущие рабочие процессы PID (идентификатор Процесса), который является терминалом удара.

pstree управляйте показывает все "дерево" названных команд.

1
ответ дан 2 December 2019 в 02:43

VS Code устанавливает переменную стандартной среды TERM_PROGRAM в среде терминала для указания, что запустило его, таким образом, можно решить проблему с помощью этого, не будучи должен проанализировать дерево процесса:

if [[ "$TERM_PROGRAM" == "vscode" ]]; then
  exit 0
fi

# Rest of script...
2
ответ дан 2 December 2019 в 02:43

Другие вопросы по тегам:

Похожие вопросы: