是否有可能獲得在python中運行在shell上的前一個命令的退出代碼?在Python中獲取前一個命令的退出代碼?
我想編寫一個腳本,它將返回當前設置的錯誤代碼(假設python命令成功)。這將相當於在bash中做這樣的事情:
#!/bin/bash
err=$?
# Do something...
exit $err
我想避免將它作爲參數傳遞,如果可能的話。例如:
python script.py $?
是否有可能獲得在python中運行在shell上的前一個命令的退出代碼?在Python中獲取前一個命令的退出代碼?
我想編寫一個腳本,它將返回當前設置的錯誤代碼(假設python命令成功)。這將相當於在bash中做這樣的事情:
#!/bin/bash
err=$?
# Do something...
exit $err
我想避免將它作爲參數傳遞,如果可能的話。例如:
python script.py $?
我會說,你的解決方案(包裝無論是「以前的命令」,並在一個shell腳本,保持返回碼的跟蹤Python腳本)是要走的路:
#!/bin/bash
first_command
ERR=$?
python second_script.py
exit $ERR
Python的腳本將更加可重用,因爲它不必依賴任何關於其環境的假設。
任何理由爲什麼這個包裝解決方案不適合你的情況?
恕我直言,這是不可能的。由bash啓動的命令無法訪問shell變量,也無法訪問shell本身。它只能知道:
的路徑,但我不知道任何bash API以獲得更多。
您還需要導出'ERR';否則,它只是一個shell變量,而不是一個環境變量,python腳本將無法訪問它。 – chepner