virtualenvwrapper.sh中的"$(command which python?
描述问题
意思: 获取Python的位置
获取Python路径,应该有几种写法,自己一下想到的是which
,怎么也不会想到command
这种命令(事实上,很少见到这个命令),然考虑到写这个脚本(Virtualenvwrapper.sh)的是大神,必然shell编程经验比我丰富,踩过的坑比我多,这样写必然有其道理,优艾设计网_Photoshop交流 所以这道理
是啥?
具体地,我将问题拆解成以下几个:
which
是啥?用
$(which python)
不可以吗?command
是一个啥命令? (man command
没有输出)
上下文环境
Linux Python2.7
重现
Virtualenvwrapper是常用的Python包,它是利用了shell包装了Virtualenv,所以我想看看它的shell实现 然发现,有些部分不是很懂要重现,可以去看Virtualenvwrapper.sh这个脚本 注意: 在不同Linux发行版,不同shell(bash/zsh)程序中的位置不同(具体见官方手册)
相关代码
摘取部分代码
# Locate the global Python where Virtualenvwrapper is installed. if [ "$VirtualENVWRAPPER_PYTHON" = "" ] then VirtualENVWRAPPER_PYTHON="$(command which python)" fi# Set the name of the Virtualenv app to use. if [ "$VirtualENVWRAPPER_VirtualENV" = "" ] then VirtualENVWRAPPER_VirtualENV="Virtualenv" fi# Set the name of the Virtualenv-clone app to use. if [ "$VirtualENVWRAPPER_VirtualENV_CLONE" = "" ] then VirtualENVWRAPPER_VirtualENV_CLONE="Virtualenv-clone" fi
已经尝试哪些方法仍然没有解决(附上相关链接)
Google了:
command which python
问题简化
嫣然一笑 优艾设计网_平面设计 2022-07-14 07:34
bash 文档中的解释:
www.6xb.cn 2022-07-14 07:优艾设计网_设计圈42
没有任何道理,可能这个脚本的作者是个老古董,不习惯bash吧。
qkoufu061 2022-07-14 07:54 优艾设计网_设计百科
作者在这一段注释中已经说明了,目的是为了多平台兼容
精彩评论