如何在Shell中仅当PYENV_VERSION存在时才添加带括号的虚拟环境名到MYPS1?
解决方案
可以实现,以下是两种常用的处理方法:
方法一:Shell参数展开(简洁写法)
直接将配置修改为:
MYPS1+='${PYENV_VERSION:+($PYENV_VERSION) }'
${VAR:+指定内容} 是Shell的参数展开语法:当变量VAR非空时,会替换为后面的指定内容;如果VAR为空或未定义,则替换为空字符串,这样就不会出现空括号的情况。
方法二:条件判断语句(直观写法)
如果觉得参数展开不够直观,也可以用if条件判断实现:
if [ -n "$PYENV_VERSION" ]; then MYPS1+="($PYENV_VERSION) " fi
-n "$PYENV_VERSION" 用于检查变量是否非空,只有满足条件时,才会向MYPS1添加带括号的环境名前缀。
内容的提问来源于stack exchange,提问作者tuemar29
相关产品推荐
相关产品推荐

