我正在查看virtualenv的源代码,而activate脚本包含以下代码:
if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "x" != x ] ; then
PS1="$PS1"
else
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
fi
fi
export PS1
fi
Run Code Online (Sandbox Code Playgroud)
这条线if [ "x" != x ]做什么?x未在脚本中的任何其他位置定义.
rua*_*akh 10
在Bash中,该测试保证失败; [ "x" != x ]始终返回非零退出状态(即"false"),因为"x"并且x都是由单个字符组成的字符串x.(在这种情况下,引号实际上没有任何影响.)
更重要的是,该命令PS1="$PS1"实际上并没有做任何事情:它只是将变量设置为PS1等于它已有的值.
我猜这个脚本是以某种方式自动生成的,而且在某些系统上,这些语句看起来会有点不同,而且没那么无用.