如何从命令行使用 sudo 运行此脚本?

如何从命令行使用 sudo 运行此脚本?

我的用户 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 身份执行(小心)。

相关内容