У меня есть сценарий, который работает каждый раз, когда я открываю терминал (я поместил команду в .bashrc). Теперь, когда я открываю Visual Studio Code, сценарий, очевидно, также выполняется во внутреннем терминале там. Я не хочу, чтобы это произошло. Там какой-либо путь состоит в том, чтобы обнаружить, был ли терминальный экземпляр запущен VSCode, таким образом, я могу препятствовать тому, чтобы сценарий выполнился в этом случае? (Я использую удар),
Извините, если это - немой вопрос, я все еще довольно плохо знаком с Linux и ударом.
Используя этот потенциально дублирующийся ответ: 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
управляйте показывает все "дерево" названных команд.
VS Code устанавливает переменную стандартной среды TERM_PROGRAM
в среде терминала для указания, что запустило его, таким образом, можно решить проблему с помощью этого, не будучи должен проанализировать дерево процесса:
if [[ "$TERM_PROGRAM" == "vscode" ]]; then
exit 0
fi
# Rest of script...