Bash 从PuTTY运行的shell脚本返回代码到调用批处理文件?
我想问一个关于如何应用腻子和控制其返回值的问题。我的设置是这样的 有一个Bash 从PuTTY运行的shell脚本返回代码到调用批处理文件?,bash,batch-file,putty,exit-code,Bash,Batch File,Putty,Exit Code,我想问一个关于如何应用腻子和控制其返回值的问题。我的设置是这样的 有一个xxxxx.bat文件,其中包含PuTTY调用和ssh连接,如下所示: putty.ext ssh 10.10.10.10 -l xxxx -pw yyyy -t -m wintest.txt 文件wintest.txt包含: echo "wintest.txt: Before execute..." /home/tede/n55115/PD/winlinux/RUN.lintest.bsh echo "wintest
xxxxx.bat
文件,其中包含PuTTY调用和ssh连接,如下所示:
putty.ext ssh 10.10.10.10 -l xxxx -pw yyyy -t -m wintest.txt
文件wintest.txt
包含:
echo "wintest.txt: Before execute..."
/home/tede/n55115/PD/winlinux/RUN.lintest.bsh
echo "wintest.txt: After execute..."
echo $?
文件lintest.bsh
包含各种命令,我感兴趣的是能够在.bsh文件中捕获特定命令的返回值,并从bat文件调用该值,将其添加到带有警告的if循环中,即if$?
(或%ERRORLEVEL
-我不知道如何工作)然后
BLABLA
我已经读了很多关于这方面的帖子,但坦率地说,这是我第一次用.bat文件做任何事情,所以这有点让人困惑。首先,不要使用PuTTY实现自动化,使用(PuTTY命令行连接工具) 但即使是Plink也无法传播远程命令退出代码 您可以让远程脚本在其输出的最后一行打印退出代码(您正在使用
echo$?
执行的操作),并让批处理文件解析退出代码:
@echo关闭
plink.exe putty.ext ssh 10.10.10.10-l xxxx-pw yyyy-t-m wintest.txt>output.txt 2>&1
对于(output.txt)do中的/F“delims=“%%a”(
回声%%a
设置“SHELL\u EXIT\u CODE=%%a”
)
如果%SHELL\u退出\u代码%gtr 0(
回显错误%SHELL\u退出\u代码%
)否则(
呼应成功
)
但当然,您必须修复脚本以返回所需的退出代码(当前代码返回上一个echo
命令的退出代码):
谢谢,这很有帮助
echo "wintest.txt: Before execute..."
/home/tede/n55115/PD/winlinux/RUN.lintest.bsh
EXIT_CODE=$?
echo "wintest.txt: After execute..."
echo $EXIT_CODE