改變shebang的目標

改變shebang的目標

我想建立python3要在 shebangs 中使用的目標。例如。使用第一行#!/usr/bin/env python3

我嘗試過的:

  • setenv python3 PATH_TO_BINARY,也放入.cshrc,echo $python3也顯示路徑

  • /bin/env NAME=python3 PATH_TO_BINARY,開啟 python3 但不允許使用 shebang。 /bin/env python3=PATH_TO_BINARY 相同

如果重要的話,我想解決以下問題:

我正在開發一個rhel 6無法直接安裝的系統,python3但我可以使用它來anaconda3安裝在可存取的網路資源上。我不想將 shebang 與絕對路徑放在一起,而是想正確設定 python3 路徑,編寫可移植程式碼。

答案1

#!在這種情況下,您應該更改的不是- 行,而是您的$PATH.

#!/usr/bin/env python3

這會導致python3將在變數列出的目錄中搜尋解釋器$PATH

如果python3安裝在,例如,,$HOME/local/bin則該目錄必須存在於$PATH 任何其他可能包含python3解釋器的目錄,否則將在$HOME/local/bin.

所以你需要設置

PATH="$HOME/local/bin:$PATH"

無論是在命令列上,還是在 shell 初始化腳本中(~/.bashrc例如)。 C-shell 使用者的做法有所不同...

set path = ($HOME/local/bin $path)

一般來說,#!-行標識翻譯員對於腳本,即使用什麼程式來解析和執行該檔案。sed例如,腳本可以使用#!/usr/bin/sed -f.

相關內容