我想寫什麼應該是一個超級簡單的bash腳本。基本上激活一個虛擬的env,並改變到工作目錄。我做了很多事情,並且對一個命令採取了正確的態度。虛擬環境從bash腳本初始化
基本上...
#!/bin/bash
source /usr/local/turbogears/pps_beta/bin/activate
cd /usr/local/turbogears/pps_beta/src
然而,當運行時,它只是轉儲回外殼和我仍然在我跑的腳本從目錄和環境沒有被激活。
我想寫什麼應該是一個超級簡單的bash腳本。基本上激活一個虛擬的env,並改變到工作目錄。我做了很多事情,並且對一個命令採取了正確的態度。虛擬環境從bash腳本初始化
基本上...
#!/bin/bash
source /usr/local/turbogears/pps_beta/bin/activate
cd /usr/local/turbogears/pps_beta/src
然而,當運行時,它只是轉儲回外殼和我仍然在我跑的腳本從目錄和環境沒有被激活。
您只需使用source命令運行腳本。這是因爲cd命令對運行它的shell是本地的。當您直接運行腳本時,將執行一個新的shell,該腳本在到達腳本的文件末尾時終止。通過使用source命令,你可以讓shell直接執行腳本的指令。
cd
的值是當前腳本的本地值,當您脫離文件末尾時會結束。
你想要做的不是「超級簡單」,因爲你想覆蓋這種行爲。
查看exec
用您選擇的過程替換當前過程。
要將命令送入交互式Bash,請查看--rcfile
選項。
我想你希望你的腳本是動態的,但是,作爲一個快速修復時,我在一個新的系統上創建一個別名。
開始即
將env被稱爲位於〜/ ENVS/PY1 /與存儲庫 位置 'PY1' 在〜/凸出/ PY1/
別名PY1 ='源〜/ ENVS/PY1/bin中/激活; cd〜/ proj/py1 /;
末即
您現在可以從任何地方CLI鍵入PY1訪問項目和的virtualenv。
我知道這不是近乎理想的地方,違反了DRY和許多其他編程概念。這只是一種快速而骯髒的方式,讓您的環境和項目可以快速訪問,而無需設置變量。
我知道我遲到了這裏的比賽,但我可以建議使用virtualenvwrapper嗎?它提供了一個很好的bash鉤子,它看起來完全符合你的需求。
看看這個教程:http://blog.fruiapps.com/2012/06/An-introductory-tutorial-to-python-virtualenv-and-virtualenvwrapper
鏈接已經過期 – blissini
其中,順便說一句,這就是爲什麼你正在使用的「源」,在您自己的腳本的原因。 –
正是我需要的。一旦定時器死亡,將其標記爲正確。 – Ominus