嗨,我创建了一个批处理文件(run.bat),执行后在plink 的帮助下将我连接到 UNIX 服务器。但问题从这一点开始,我必须在连接到我的服务器后执行一个脚本,该脚本包含一个命令sudo -l。执行后,我收到了主题中提到的错误,有人可以帮助我解决这个问题吗??
批处理文件-:
"C:\Program Files\PuTTY" plink -ssh -pw Tos@12Ts w44dvftyw@caa1607UX009.wvd.abcd.net /opt/sieb/w44dvftyw/run.sh
Run Code Online (Sandbox Code Playgroud)
脚本文件(run.sh)-:
#!/bin/bash
sudo -l
Run Code Online (Sandbox Code Playgroud)
它说
须藤:找不到命令
但是当我在 UNIX 服务器上正常运行我的脚本时,它运行没有问题。我在这里缺少什么使它以这种方式工作请帮助。
诸如~/.profile或~/.bash_profile负责设置当前用户的脚本PATH仅在登录 shell 上运行。
运行sh -c 'somescript'(由 执行ssh host 'somescript')既不是登录 shell,也不是交互式 shell;因此,它不会获得此类脚本的好处。
这意味着以这种方式运行的命令可能不存在对PATH(在您的情况下/usr/local/bin)的添加。
在您的选择中:
传递您想要的 PATH 作为命令的一部分以远程运行。这可能看起来像:
plink -ssh user@host "PATH=/bin:/usr/bin:/usr/local/bin /opt/sieb/w44dvftyw/run.sh"
Run Code Online (Sandbox Code Playgroud)在您正在运行的脚本中嵌入一个工作值:
#!/bin/bash
PATH=/bin:/usr/bin:/usr/local/bin
# ...put the rest of your script here.
Run Code Online (Sandbox Code Playgroud)