sudo:使用plink时找不到命令

时间:2017-06-22 14:53:09

标签: bash unix

您好我创建了一个批处理文件(run.bat),在执行后通过 plink 的帮助将我连接到UNIX服务器。但问题从这一点开始我必须在连接到我的服务器后执行脚本,脚本包含命令 sudo -l <​​/ strong>。执行后我得到了主题中提到的错误,任何人都可以帮我解决这个问题吗?

批处理文件 - :

"C:\Program Files\PuTTY" plink -ssh -pw Tos@12Ts w44dvftyw@caa1607UX009.wvd.abcd.net /opt/sieb/w44dvftyw/run.sh

脚本文件(run.sh) - :

#!/bin/bash
sudo -l

它说

  

sudo:找不到命令

但是当我在UNIX服务器上正常运行我的脚本时,它运行时没有任何问题。我在这里错过了什么让它以这种方式工作请帮助。

1 个答案:

答案 0 :(得分:4)

负责设置当前用户~/.profile的{​​{1}}或~/.bash_profile等脚本仅在登录shell上运行。

运行PATH(由sh -c 'somescript'执行)既不是登录shell,也不是交互式shell;因此,它没有从这些脚本中获益。

这意味着在以这种方式运行的命令中可能不会添加ssh host 'somescript'(在您的情况下为PATH)。

在您的选项中:

  • 将您想要的PATH作为命令的一部分进行远程运行。这可能看起来像:

    /usr/local/bin
  • 在您正在运行的脚本中嵌入工作值:

    plink -ssh user@host "PATH=/bin:/usr/bin:/usr/local/bin /opt/sieb/w44dvftyw/run.sh"