csh - 检查 $PATH 变量是否包含子字符串

csh - 检查 $PATH 变量是否包含子字符串

也许我的想法是错误的,但我想将 Python 添加到我的$PATH变量中(如果它尚未存在)。

这是我的代码

# 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, 作为对目录是否存在的稍微更强的测试,然后我检查变量是否$path包含类似/path/to/python/bin;的内容。如果目录存在并且路径变量尚未包含该路径,则将其追加。我相信 csh 语法使用空格来分隔路径中的元素,而不是冒号。

相关内容