命令完成后退出 Plink

问题描述 投票:0回答:1

我正在尝试通过

plink.exe
运行多个命令行。批次完成后。我想退出并执行新的命令行

我的脚本在

execute.bat
文件中

(
echo cd /appl/
echo sudo -s
echo cd apache-tomcat/webapps/Test
echo sh ./J50X100.sh
) | plink.exe -batch host -l user -pw pass

实际:仍然处于远程状态,无法执行新的命令行

Actual details here

预期:退出并能够执行新的命令行

linux shell batch-file putty plink
1个回答
1
投票

您使用 Plink 的方式,它会打开一个交互式 shell 会话。与每个交互式 shell 会话一样,必须使用

exit
命令退出。在您的情况下,实际上有两个
exit
命令,首先退出
sudo
,然后退出登录 shell。


尽管您最好通过在 Plink 命令行上指定命令来完全避免使用交互式 shell:

plink.exe -batch host -l user -pw pass "cd /appl/ ; sudo -s 'cd apache-tomcat/webapps/Test ; sh ./J50X100.sh '"

虽然这种方法可能对您的具体情况有问题,因为您必须配置

sudo
以允许此命令 - 但您应该这样做,因为这是正确的方法。您必须编辑
sudoers
文件
– 理想情况下,您应该创建一个执行
cd apache-tomcat/webapps/Test ; sh ./J50X100.sh
功能的脚本并允许在
sudoers
中使用该脚本。

© www.soinside.com 2019 - 2024. All rights reserved.