如何使脚本在 Ubuntu 中全局可执行?

如何使脚本在 Ubuntu 中全局可执行?

我有一个 bash 脚本,我想从任何地方执行它(例如,像其他 Linux 基本命令一样ls)。我尝试按照这个教程但它不起作用,我总是得到command not found

如果有办法通过这种方式直接执行 Python 脚本就好了,目前我有包含脚本的 .py 文件,然后有调用 .sh 的文件python /path/to/it

答案1

如果你编写了一个python脚本,你至少可以通过以下三种方式执行它:

1 以脚本作为参数启动 python。

例子:/usr/local/bin/python-2.5 myscript.py

2 使用 shebang 解释器启动脚本。

这意味着第一行以 #! (也称为 shebang)开头,后跟一个空格(通常没有!)和解释器的完整路径。

例子:

/usr/local/bin/python-2.5 的#!
#
# 我的测试脚本!
#
做一点事

请注意我添加了评论第一行。不要将它们添加到上面,因为这样第一行就不再以 shebang 开头了。

3 使用以下命令启动脚本#!/usr/bin/env python

这与选项 2 大致相同,只是 env 会帮您找到 python。如果 python 移动到其他位置或有新版本,则您不必更新所有脚本。

这是首选解决方案


使用 sh 脚本调用 python /path/to/it 的部分就这么多。现在你知道如何跳过该部分了。

问题的第二部分似乎是找不到您的脚本。要查找脚本或程序,您需要指定其完整路径(例如 /usr/local/bin/myscript.py),或者它需要位于您的路径中。

您可以使用 检查当前路径的设置echo $PATH

它可能包括 /usr/local/bin/,这意味着将找到目录 /usr/local/bin/ 中的任何程序或脚本。如果没有,则将该路径添加到系统范围的默认值。(注意:更改后启动登录 shell 进行测试。更改配置文件而不启动新 shell 将不会反映更改)。

最后,我跳过了您希望脚本可执行的部分。您在链接的教程中已经拥有了这一点。

相关内容