我正在尝试通过plink.exe运行多个命令行。批处理完成后。我想退出此并执行新的命令行execute.bat文件中的脚本
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
字符串实际:它仍然处于远程状态,我无法执行新命令行
的数据预期:退出此命令并能够执行新命令行
kognpnkq1#
使用Plink的方式是,它打开一个交互式shell会话。与每个交互式shell会话一样,它必须使用exit命令退出。在本例中,实际上使用两个exit命令,首先退出sudo,然后退出登录shell。尽管你最好通过在Plink命令行上指定命令来避免使用交互式shell:
exit
sudo
plink.exe -batch host -l user -pw pass "cd /appl/ ; sudo -s 'cd apache-tomcat/webapps/Test ; sh ./J50X100.sh '"
字符串虽然这种方法在你的特定情况下可能会有问题,因为你必须配置sudo来允许这个命令-但是你应该这样做,因为这是正确的方法。你必须编辑sudoers file-理想情况下,你应该创建一个执行cd apache-tomcat/webapps/Test ; sh ./J50X100.sh的脚本,并在sudoers中允许该脚本。
sudoers
cd apache-tomcat/webapps/Test ; sh ./J50X100.sh
1条答案
按热度按时间kognpnkq1#
使用Plink的方式是,它打开一个交互式shell会话。与每个交互式shell会话一样,它必须使用
exit
命令退出。在本例中,实际上使用两个exit
命令,首先退出sudo
,然后退出登录shell。尽管你最好通过在Plink命令行上指定命令来避免使用交互式shell:
字符串
虽然这种方法在你的特定情况下可能会有问题,因为你必须配置
sudo
来允许这个命令-但是你应该这样做,因为这是正确的方法。你必须编辑sudoers
file-理想情况下,你应该创建一个执行cd apache-tomcat/webapps/Test ; sh ./J50X100.sh
的脚本,并在sudoers
中允许该脚本。