簡體   English   中英

為什么當前目錄中的python腳本需要./來與shebang一起執行?

[英]Why does python script in current directory need ./ for execution with shebang?

在我當前的目錄中有帶有shebang #!/usr/bin/env python的可執行腳本script.py。 要在bash中執行它,我需要輸入./script.py 從我對shebang的了解中,我希望script.py能執行該腳本,就像python script.py一樣,但事實並非如此。 后面兩個選項有什么區別?

在類似Un * x的系統上, . 出於安全原因不在路徑中,以避免執行可能位於用戶目錄中的ls類的命令(最好以root身份利用此安全漏洞)

對於python腳本而言,這比諸如ls之類的經典命令所關心的要少,但是帶有shebang的python腳本是可執行文件,因此請遵循一般的安全規則。

當您鍵入python myscript.py知道該腳本位於當前目錄中,並且python從此處讀取該腳本,而不管系統路徑如何(它被視為data ,不是可執行文件 ,真正的可執行文件是python

暫無
暫無

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

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