virtualenvwrapper.sh中的"$(command which python 財(cái)富值82

科技 未結(jié) 3 1567
M29****1122
M29****1122 2022-09-22 20:56

描述問題

意思: 獲取Python的位置
獲取Python路徑,應(yīng)該有幾種寫法,自己一下想到的是which,怎么也不會(huì)想到command這種命令(事實(shí)上,很少見到這個(gè)命令),然考慮到寫這個(gè)腳本(virtualenvwrapper.sh)的是大神,必然shell編程經(jīng)驗(yàn)比我豐富,踩過的坑比我多,這樣寫必然有其道理, 所以這道理是啥?

具體地,我將問題拆解成以下幾個(gè):

  1. which是啥?

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

  3. command是一個(gè)啥命令? (man command沒有輸出)

上下文環(huán)境

Linux Python2.7

重現(xiàn)

virtualenvwrapper是常用的Python包,它是利用了shell包裝了virtualenv,所以我想看看它的shell實(shí)現(xiàn) 然發(fā)現(xiàn),有些部分不是很懂要重現(xiàn),可以去看virtualenvwrapper.sh這個(gè)腳本 注意: 在不同Linux發(fā)行版,不同shell(bash/zsh)程序中的位置不同(具體見官方手冊(cè))

相關(guān)代碼

摘取部分代碼

# 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

已經(jīng)嘗試哪些方法仍然沒有解決(附上相關(guān)鏈接)

Google了:

  1. command which python

問題簡化

3條回答
  •  青色流蘇飄
    2022-09-22 21:32

    沒有任何道理,可能這個(gè)腳本的作者是個(gè)老古董,不習(xí)慣bash吧。

提交回復(fù)