有人知道如何檢查ipython中最後執行的命令(退出代碼)的狀態嗎?檢查ipython中最後命令的退出狀態
回答
我假設你正在談論使用!
逃離IPython中運行命令:
In[1]: !echo hello
hello
In[2]:
使用谷歌,我發現的文件,也沒有指揮的退出狀態被提及的任何地方拍攝。使用dir()
我查找了一個可能保存這些信息的變量名,但我沒有找到任何東西。我嘗試了x = !ls
語法,並且x
被設置爲來自命令的輸出行列表;那裏沒有退出狀態。
總之,我不認爲IPython甚至捕獲這些信息。在這一點上,我想檢查IPython的源代碼,試圖找出其他的東西。
您可以隨時運行os.system()
的命令並從中獲取退出狀態。
In[1]: !launch_eva
launch_eva: could not open AT Field
In[2]: import os
In[3]: exit_status = os.system("launch_eva")
launch_eva: could not open AT Field
In[4]: exit_status
3
In[5]:
因此,我們看到的命令launch_eva
將返回退出狀態3時,它無法打開外地。
似乎這是IPython應該保存的東西。有很多隱藏的小變量。您應該提交關於此的功能請求。
注意:這已在Ubuntu上的IPython 0.10.1中進行了測試。 「piotr」的另一個答案是,由於即將發佈,退出代碼將在IPython 0.11中捕獲。我克隆了來自Git倉庫的源代碼https://github.com/ipython/ipython.git並用python ipython.py
進行了測試;正如piotr所說,退出狀態保存在名爲_exit_status
的變量中。
+1的命令用於新世紀福音戰士參考。 :) –
我想知道如果有人會注意到並享受。 :-) – steveha
運行該命令後(至少在即將發佈的v0.11發行版中),它應該作爲_exit_code
存儲。
感謝您的信息!我提高了這一點。 – steveha
從0.13.2開始,這是有效的,但是如果我用「a =!false」捕獲stdout(如果我捕獲stdout,_exit_code不會改變)。任何人都知道是否有解決方案? –
- 1. 檢查退出狀態退出狀態
- 2. 在Python腳本中獲取最後命令的退出狀態
- 3. 在bash中檢查ssh remote命令的退出狀態
- 4. Bash:檢查多管道命令鏈的退出狀態
- 5. 在shell_exec命令中運行後檢查tar命令的狀態?
- 6. 命令退出狀態的Bash測試
- 7. Capistrano&Bash:忽略命令退出狀態
- 8. shell腳本ssh命令退出狀態
- 9. 命令退出狀態1:pager -s
- 10. CVS cvs命令退出退出狀態1
- 11. 檢查DIFF退出狀態在腳本
- 12. Bash循環和退出狀態檢查
- 13. MYSQL:如何檢查退出狀態?
- 14. 如何測試中的Bash命令的非零退出狀態?
- 15. 如何在球拍中退出退出狀態並輸出系統命令?
- 16. 在PHP中獲取管道命令的退出狀態
- 17. 如何忽略perl腳本中shell命令的退出狀態
- 18. Bash中的命令退出狀態始終爲真
- 19. 如何在Java中捕獲shell命令的退出狀態?
- 20. 如何通過Makefile中的shell'if'命令傳播退出狀態?
- 21. 如何在makefile中獲取bash命令的退出狀態?
- 22. 如何在Symfony2命令中設置退出狀態碼?
- 23. 帶反引號的遠程shell命令的退出狀態
- 24. Python - 捕獲通過SSH執行的命令的退出狀態
- 25. 錯誤:命令 'x86_64的-Linux的GNU-GCC' 與退出狀態1
- 26. 通過ssh執行的管道命令的退出狀態
- 27. linux命令返回的退出狀態1的含義
- 28. shell腳本:執行命令的退出狀態不正確
- 29. Python的 '子' CalledProcessError:命令 '[...]' 返回非零退出狀態1
- 30. 管道到不同的命令基於退出狀態在bash
你是否正在使用類似os.system的東西在python中盯着命令?或者你運行命令foo,然後運行你的python腳本? – Zoredache
只是使用ipython作爲shell,並且運行帶有!cmd – piotr