簡體   English   中英

從Linux命令行調用腳本級Python函數

[英]Calling script-level Python functions from the Linux command line

如何為Linux服務器創建功能和軟件? 讓我更詳細地解釋一下。

因此,對於我使用SSH客戶端訪問的Linux服務器,我已經制作了一些工作正常的Python腳本,但我真正想做的就是讓這些Python腳本一直處於活動狀態,以便我可以執行我已經執行的功能只需在命令行中鍵入“time”而不是用./script-name.py啟動腳本然后鍵入“time”,就可以在腳本中創建(例如“def time():...”)。 我是否需要以某種方式將Python文件安裝到系統中?

我努力搜索谷歌,因為我沒有完全理解要搜索的內容,並且出現的結果與我的請求無關。 我確實找到了cmd Python模塊並學習了如何創建cmd解釋器,但是,為了讓我能夠訪問我在cmd解釋器中定義的命令,我必須首先啟動腳本,正如我上面解釋的那樣,不是我的意思。尋找。

如何從Linux命令行調用腳本級Python函數?

如果你正在使用Python,你仍然需要啟動解釋器,但你可以自動完成。

首先讓您的腳本可執行。 在shell中運行此命令:

chmod +x script-name.py
ls -l script-name.py

ls的輸出應該如下所示(注意左側列中的x s):

-rwxr-xr-x  1 me me     4 Jan 14 11:02 script-name.py

現在在腳本文件的頂部添加一個解釋器指令行 - 這告訴shell運行Python來解釋你的腳本:

#!/usr/bin/python

然后在調用函數的文件末尾添加代碼:

if __name__ == '__main__':
    time()

if語句檢查這是否是正在執行的文件。 這意味着如果需要,您仍然可以從另一個Python文件導入模塊,而不會自動調用time()函數。

最后,您需要將腳本放在可執行文件路徑中。

mkdir -p $HOME/bin
mv script-name.py $HOME/bin/
export PATH=$HOME/bin:$PATH

現在您應該能夠運行script-name.py ,並且您將看到time()函數的輸出。 您可以將文件重命名為您喜歡的任何內容; 你甚至可以刪除.py擴展名。

您可以做的其他事情:

  • 使用argparse模塊添加命令行參數,例如,這樣您就可以運行script-name.py time來執行time()函數
  • 將腳本放在系統范圍的路徑中,例如/usr/local/bin
  • export PATH=$HOME/bin:$PATH行添加到.bashrc以便在您登錄時默認發生

上面的答案比我的更完整,更豐富。 我只是想提供一個快速而骯臟的選擇。

echo "alias time='<your script> time'" > ~/.bashrc
bash

就像我說的那樣,又快又臟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM