我试图将路径追加到PERL5LIB
环境变量的末尾,但是我不确定该变量将始终存在。如果不存在,我想简单地将其初始化为我要附加的值。
这是一个有效的示例:
if ( $?PERL5LIB ) then
setenv PERL5LIB ${PERL5LIB}:/some/other/path
else
setenv PERL5LIB /some/other/path
endif
尽管这行得通,但由于我基本上必须写两次相同的行,所以它似乎仍然很笨拙。我想做的是提出一种更有效的单行解决方案(可能使用参数扩展)。
有没有办法将其合并为一条线? (或者几行不涉及多次写出“/some/other/path”)
例如,可以在bash中完成此操作:
export PERL5LIB=${PERL5LIB:+${PERL5LIB}:}/some/other/path
最佳答案
如果未定义环境变量,请将其设置为空字符串。这样可以避免重复。
if ( ! $?PERL5LIB ) then
setenv PERL5LIB ""
else
setenv PERL5LIB "${PERL5LIB}:"
endif
setenv PERL5LIB ${PERL5LIB}/some/other/path
关于environment-variables - 附加到csh中可能尚不存在的环境变量的简单方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47722729/