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

Brō*_*rāx 1 command-line bash scripts python3

我的用户的 bin 目录中有以下脚本;让我们假设文件名是“myScript”:

#!/bin/bash

python3 /myPath/myProgram.py "$@"
Run Code Online (Sandbox Code Playgroud)

myScript从命令行,如果我输入,它会启动我的 myProgram.py。sudo myScript但是,如果我输入,它会给我这个错误:sudo: myProgram: command not found

为什么这不起作用?我怎样才能让它工作?

谢谢!

Wil*_*ilf 5

您可能需要像这样运行脚本:

  • sudo /path/to/myScript
  • sudo ./myScript (如果脚本在当前目录中)

您得到的原因command not found是该脚本不在当前用户的 PATH 目录中。然而,使用sudo运行它作为一个不同的用户-根(比较echo $PATHsudo -i然后echo $PATH看)。所以你想把它添加到 root 用户的 PATH:

  • 将它复制到/usr/local/bin/usr/bin/或已经在根路径中的另一个目录
  • 将目录添加到 PATH,但以 root 身份执行(小心)。