2016-01-27 81 views
0

我正在寫一個python腳本將被放置在一個位置。我想像命令一樣執行它。爲前。作爲一個命令執行一個python腳本

$ find_branch test 

其中find_branch是放置在系統中任何位置的腳本。

我想知道如何做到這一點。我可以在地方運行該腳本存在與chmod U + X上的腳本,並從腳本中刪除的.py

+1

爲什麼你不能運行「python 」? –

+0

只需在第一行放置#!/ usr/bin/python(或者你的Python所在的位置)並設置可執行位。 – Christoph

+2

您需要將它所在的目錄添加到您的'PATH'環境變量 – Holloway

回答

0
sudo nano /usr/bin/testpyscript 

然後裏面的腳本:

#!/usr/bin/python 
print("I'm a python script") 

給它x許可:

sudo chmod +x /usr/bin/testpyscript 

現在你可以使用它作爲一個普通的命令:

bash-4.2$ testpyscript 
I'm a python script 

它並不一定是在/usr/bin,$ PATH中的任何位置都可以。假設您希望它位於您的主目錄中的某個文件夾中,您可以執行下面的操作:

pwd 
/home/brunorb 

mkdir somedir 
sudo mv /usr/bin/testpyscript somedir/ 

export PATH=$PATH:/home/brunorb/somedir/ 

testpyscript # from any folder in the system 
I'm a python script 
+0

但是你仍然需要cd到/ path/to/script/。我相信OP的問題是如何避免(即向$ PATH添加腳本)。 – pzp

+0

OP表示他希望將腳本「放置在系統中的任何位置」,但您的答案要求他將其放在特定位置 – Spaceghost

+0

這僅僅是一個例子,默認情況下,通常所有linux在/ PATH中都有/ usr/bin,我在最後一行評論說,只要dir在你的$ PATH中,它就可以在任何地方。 – BrunoRB

0

您有許多關於如何實現此目的的選項。

  1. 添加你把劇本給您PATH環境變量的位置,例如在你的~/.bashrc腳本:

    export PATH="${PATH}:/folder/where/you/put/the/script" 
    
  2. 安裝腳本是已經在你的路徑上的位置。它不一定是像/usr/bin這樣的系統文件夾。許多默認Bash設置將在您的PATH中包含~/bin

  3. 給的完整路徑,在命令行腳本:

    /folder/where/you/put/the/script/find_branch test 
    
  4. 通過Python中運行該腳本。這是非常相似的選項#2:

    python /folder/where/you/put/the/script/find_branch test 
    
  5. 在您的環境腳本創建一個別名。在bash,那麼你會做一些這樣的你~/.bashrc如下:

    alias find_branch='/folder/where/you/put/the/script/find_branch' 
    

    OR

    alias find_branch='python /folder/where/you/put/the/script/find_branch' 
    

對於選項#1,#2,#3,#5A正常工作,你應該作爲腳本的第一行,有python版本的shebang。以下任何方式都行,這取決於你如何有/想你的環境設置:

#!/usr/bin/python 
#!/usr/bin/python2 
#!/usr/bin/python3 
#!/usr/bin/env python 
#!/usr/bin/env python2 
#!/usr/bin/env python3 

最後,你不必從腳本刪除.py擴展,如果你不想。例如,許多bash腳本的擴展名爲.sh,這並不妨礙它們按原樣運行。運行時只需在腳本名稱中包含擴展名。

+0

..或別名。 – Spaceghost

+0

呼叫良好。將更新。 –

+0

我認爲3和5a將需要shebang以及 – Holloway

0

確保python已添加到您的路徑中,#!/usr/bin/python位於腳本的頂部。

注意您可以嘗試將您的腳本添加到您的/usr/local/bin/目錄並給它適當的權限。

sudo cp <your script> /usr/local/bin/

相關問題