我正在尝试通过
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
实际:仍然处于远程状态,无法执行新的命令行
预期:退出并能够执行新的命令行
您使用 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
中使用该脚本。