2010-10-03 48 views
0

我有以下情況: - 我在Windows 2003中寫入bash文件bbb,但返回值= 3 exit /b 3然後我通過以下命令從unix執行此bash文件: - ssh -l admin host 'cmd /c start c:\bbb'但是當我打印返回值時(0)不是(3)我用`echo $打印這個值? '現在我怎麼能從Windows bash獲得返回值「退出代碼」?獲取unix中windows中bat文件的返回值?

回答

2

您的返回碼被start屏蔽,您不應該在這種情況下使用它。

+0

如果我不能使用'start'我應該使用什麼? – 2010-10-03 09:52:17

+0

如果'bbb'確實是一個bash腳本,你應該使用'bash'而不是'cmd'運行它。例如'ssh -l admin host'bash bbb'',或者如果你的ssh在默認情況下運行bash,則不需要bash。 – Hasturkun 2010-10-03 11:10:58

+0

我嘗試與bash和沒有任何結果是:-' bash:c:bbb.bat:沒有這樣的文件或目錄....並記住我想要在Windows中執行批處理文件 – 2010-10-03 11:24:26

0

您的$?是ssh命令的返回碼。我沒有Windows機器嘗試,你可以在你的cmd命令後回顯%errorlevel%

+0

我試着執行命令,就像你說'ssh -l Admin host'cmd/c start bbb.bat && echo%errorlevel'' ....它打印%errorlevel% – 2010-10-03 11:15:56

+0

'%errorlevel% '。 – ghostdog74 2010-10-03 14:48:06