我的用户 bin 目录中有以下脚本;假设文件名是“myScript”:
#!/bin/bash
python3 /myPath/myProgram.py "$@"
在命令行中,如果我输入myScript
,它会启动我的 myProgram.py。sudo myScript
但是,如果我输入 ,它会给出此错误:sudo: myProgram: command not found
。
为什么这不起作用?我该如何让它起作用?
谢谢!
答案1
您可能需要像这样运行脚本:
sudo /path/to/myScript
sudo ./myScript
(如果脚本位于当前目录中)
您得到的原因command not found
是脚本不在当前用户的 PATH 目录中。但是,使用sudo
会以不同的用户(root)身份运行它(比较echo $PATH
一下sudo -i
然后echo $PATH
查看)。因此,如果您想将其添加到 root 用户的 PATH 中:
- 将其复制到
/usr/local/bin
,/usr/bin/
或根路径下已有的另一个目录 - 将目录添加到 PATH,但要以 root 身份执行(小心)。