优艾设计网

virtualenvwrapper.sh中的"$(command which python?

描述问题

意思: 获取Python的位置
获取Python路径,应该有几种写法,自己一下想到的是which,怎么也不会想到command这种命令(事实上,很少见到这个命令),然考虑到写这个脚本(Virtualenvwrapper.sh)的是大神,必然shell编程经验比我丰富,踩过的坑比我多,这样写必然有其道理,优艾设计网_Photoshop交流 所以这道理是啥?

具体地,我将问题拆解成以下几个:

  1. which是啥?

  2. $(which python)不可以吗?

  3. 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了:

  1. command which python

问题简化


嫣然一笑 优艾设计网_平面设计 2022-07-14 07:34

bash 文档中的解释:


www.6xb.cn 2022-07-14 07:优艾设计网_设计圈42

没有任何道理,可能这个脚本的作者是个老古董,不习惯bash吧。


qkoufu061 2022-07-14 07:54

优艾设计网_设计百科

作者在这一段注释中已经说明了,目的是为了多平台兼容


0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜