shellÓï·¨ÖÐÅжÏÏÂÁîµÄÖ´ÐÐ״̬ÊÇʲô
shell Óï·¨ÖÐÅжÏÏÂÁîÖ´ÐÐ״̬µÄÒªÁìÓУº1. $?£º½«´ËÓï·¨·ÅÔÚÏÂÁîºó£¬·µ»ØÆäÍ˳ö״̬£¨0 ÌåÏÖÀֳɣ¬·Ç 0 ÌåÏÖʧ°Ü£©£»2. command -v£º¼ì²éÏÂÁîÊÇ·ñ±£´æ£»3. type -p£ºÏÔʾÏÂÁîµÄÍêÕû·¾¶£»4. command -f£º¼ì²éÏÂÁîÊÇ·ñÊÇÒ»¸öÎļþ»òÓÖÃû¡£
Shell Óï·¨ÖÐÅжÏÏÂÁîÖ´ÐÐ״̬
ÔÚ Shell ¾ç±¾ÖУ¬ÅжÏÏÂÁîÖ´ÐÐ״̬ÊÇÊ®·ÖÖ÷ÒªµÄ¡£ËüÔÊÐí¾ç±¾Æ¾Ö¤ÏÂÁîµÄÀֳɻòʧ°ÜÀ´Ö´Ðвî±ðµÄ²Ù×÷¡£Shell ÌṩÁËÒÔÏÂÓï·¨À´ÅжÏÏÂÁîÖ´ÐÐ״̬£º
$?
ʹÓÃÒªÁ죺½«´ËÓï·¨·ÅÔÚÏÂÁîºó¡£Ëü½«·µ»ØÏÂÁîµÄÍ˳ö״̬¡£
Í˳ö״̬£º
- 0£ºÏÂÁîÖ´ÐÐÀÖ³É
- ·Ç 0£ºÏÂÁîÖ´ÐÐʧ°Ü¡£ÏêϸֵÓÉÏÂÁî¾öÒé¡£
ʾÀý£º
ls /tmp/file.txt echo $? # Êä³ö£º0£¨ÈôÊÇÎļþ±£´æ£©
µÇ¼ºó¸´ÖÆ
ÆäËûÅжÏÏÂÁîÖ´ÐÐ״̬µÄÒªÁ죺
- command -v£º¼ì²éÏÂÁîÊÇ·ñ±£´æ
- type -p£ºÏÔʾÏÂÁîµÄÍêÕû·¾¶
- command -f£º¼ì²éÏÂÁîÊÇ·ñÊÇÒ»¸öÎļþ»òÓÖÃû
ʹÓÃÍ˳ö״̬¿ØÖƾ籾Á÷³Ì£º
ls /tmp/file.txt if [ $? -eq 0 ] then echo "Îļþ±£´æ" else echo "Îļþ²»±£´æ" fi
µÇ¼ºó¸´ÖÆ
ÒÔÉϾ籾½«Æ¾Ö¤ ls ÏÂÁîµÄÍ˳ö״̬À´´òÓ¡²î±ðµÄÐÂÎÅ¡£
×¢ÖØ£º
- Í˳ö״ֻ̬ÊÊÓÃÓÚÄÚÖÃÏÂÁîºÍÍâÊÖÏÂÁî¡£
- ÈôÊÇÏÂÁîÊÇÓÉ×Ó Shell Ö´Ðеģ¬ÄÇô¸¸ Shell ÎÞ·¨Ö±½Ó»ñÈ¡ÆäÍ˳ö״̬¡£
- ¿ÉÒÔʹÓà set -e Ñ¡ÏîÀ´ÔÚÏÂÁîÖ´ÐÐʧ°ÜʱÁ¬Ã¦Í˳ö¾ç±¾¡£
ÒÔÉϾÍÊÇshellÓï·¨ÖÐÅжÏÏÂÁîµÄÖ´ÐÐ״̬ÊÇʲôµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡
ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿Ê±ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿Ê±ÊµÊ±ÐÞÕý»òɾ³ý¡£