我有一个 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 将不会反映更改)。
最后,我跳过了您希望脚本可执行的部分。您在链接的教程中已经拥有了这一点。