更改 shebang 的目标

更改 shebang 的目标

我想创建python3要在 shebang 中使用的目标。例如,使用第一行#!/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

在这种情况下,您应该更改的不是 -line #!,而是您的$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)

一般来说,#!-line 标识翻译者对于脚本,即使用什么程序来解析和运行文件。sed例如,脚本可以使用#!/usr/bin/sed -f

相关内容