您好我创建了一个批处理文件(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服务器上正常运行我的脚本时,它运行时没有任何问题。我在这里错过了什么让它以这种方式工作请帮助。
答案 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"