특정 타사 앱에 대해 이야기하는 경우 환경 변수를 사용하십시오. 대부분의 프로그램은 새로운 프로세스를 분기 할 때 변경없이 전체 환경을 통과합니다.
따라서 확인할 수있는 사용자 정의 env var로이 앱을 시작하십시오 . 예를 들어 같은 별칭을 alias vs=RUNNING_FROM_VSCODE=1 VSCode
만들거나 다음과 같이 래퍼 스크립트를 만듭니다.
#!/bin/sh
export RUNNING_FROM_VSCODE=1
exec VSCode "$@"
그런 다음에 .bashrc
할 수 있습니다
if (($RUNNING_FROM_VSCODE)); then
echo "started from inside VSCode"
# RUNNING_FROM_VSCODE=0 # optional if you only want the immediate child
fi
(( ))
표현식이 0이 아닌 정수로 평가되면 bash 산술 문장 은 true입니다 ( 1
위에서 사용한 이유 ). 빈 문자열 (설정되지 않은 env var의 경우)은 false입니다. bash 부울 변수에는 좋지만 true
전통적인 POSIX 로 쉽게 사용 하고 확인할 수 있습니다.
if [ "x$RUNNING_FROM_VSCODE" = "xtrue" ]; then
echo "started from inside VSCode"
fi
앱이 주로 어린이를위한 환경을 지우고$PATH
변경되지 않은 채 통과하는 경우 래퍼에서 이것을 사용할 수 있습니다.
#!/bin/sh
export PATH="$PATH:/dev/null/RUNNING_FROM_VSCODE"
exec VSCode "$@"
bash와 같은 패턴 일치 [[ "${PATH%RUNNING_FROM_VSCODE}" != "$PATH" ]]
로 PATH에서 접미사를 제거하면 변경되는지 확인하십시오.
프로그램이 찾을 수없는 외부 명령을 찾을 때 이것은 하나의 추가 디렉토리 조회를 무해하게해야합니다. /dev/null
는 어떤 시스템에서도 디렉토리가 아니기 때문에 ENOTDIR
PATH 검색이 이전 PATH 항목에서 원하는 것을 찾지 못하면 신속하게 가짜 디렉토리로 사용하는 것이 안전 합니다.
env
명령을 실행하십시오. 사용할 수있는 VS 특정 변수가 있는지 확인하십시오.