搜尋

首頁  >  問答  >  主體

python - 默认提供x可执行权

发现linux下写python, 保存后的.py文件默认是没有x权限

这样一来, 即使代码首行添加了

#!/usr/bin/env python

在首次执行之前还要先chmod
请问大家有什么默认赋x权限的办法吗
大家讲道理大家讲道理2893 天前504

全部回覆(5)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:06:25

    我比較少寫直接執行的腳本,所以倒是沒想過這個功能。不過思路倒還是有幾個的。

    不知道題主使用的是什麼編輯器,我一般用 vim,当然下面我说的方法在 emacs 上也適用。

    打開你的 vim 配置文件,默认一般是 ~/.vimrc,所以我通常都是這樣編輯:

    vim ~/.vimrc

    然後在最後面加上這一句:

    au BufWritePost * if getline(1) =~ "^#!" | silent !chmod a+x <afile>

    這一句的意思是如果你的檔案第一行是以#! 開頭的話,則預設為他加上可執行權限。

    加完之後儲存退出,然後你編輯一個 python 文件试试,应该是默认加执行权限了,我在ubuntudebian 上都測試通過。

    如果你使用的是 emacs 的話,不妨參考這篇文章!

    回覆
    0
  • 怪我咯

    怪我咯2017-04-18 09:06:25

    首先,樓主的認識有些錯誤,#!/usr/bin/env python是指定腳本的解釋器,+x是對 所有者,組成員和其他人都給予執行權限,這兩個並沒有什麼聯繫。其次你也可以寫個簡單的腳本,每次使用vi開啟.py檔的時候都執行,不過我認為沒有這個必要,畢竟也只是一條chmod指令的事情。

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:06:25

    python xxx.py

    或你寫個腳本叫 run 裡面的內容是

    python $*

    然後加個執行權限, run xxx.py

    你可以對這個腳本進行改造
    比如判斷後綴是 py 就執行 Python,判斷是 c 就用 gcc,判斷是 .cpp 就用 g++ ..

    回覆
    0
  • PHPz

    PHPz2017-04-18 09:06:25

    「+x」是增加可執行權限, 而「#!/usr/bin/env python」是使用哪個解釋器來運行你的腳本。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:06:25

    把你的Linux環境設定umask 預設給自己加x 如設定為766

    回覆
    0
  • 取消回覆