csh - $PATH 변수에 하위 문자열이 포함되어 있는지 확인

csh - $PATH 변수에 하위 문자열이 포함되어 있는지 확인

$PATH내 생각이 틀렸을 수도 있지만 변수가 아직 없으면 변수 에 Python을 추가하고 싶습니다 .

이게 내 코드야

# Add Python to $PATH
if(-e /path/to/python/bin && (! $PATH.Contains('python')) then
    set path=($path:/path/to/python/bin)
else
    echo 'ERROR: Unable to find the path to Python executable in .cshlc!'
endif

답변1

몇 가지 사소한 개선이 포함된 간단한 접근 방식:

if (-d /path/to/python/bin && "$path" !~ *"/path/to/python/bin"*) then
    set path=($path /path/to/python/bin)
else
    echo 'ERROR: Unable to find the path to Python executable in .cshlc!'
endif

디렉토리가 존재하는지에 대한 좀 더 강력한 테스트로 로 변경한 -e다음 변수에 다음과 같은 내용이 포함되어 있는지 -d확인했습니다 . 디렉터리가 존재하고 경로 변수에 경로가 아직 포함되어 있지 않으면 해당 디렉터리가 추가됩니다. 나는 csh 구문이 경로의 요소를 구분하기 위해 콜론이 아닌 공백을 사용한다고 생각합니다.$path/path/to/python/bin

관련 정보