proper way to detect shell exit code when errexit option set

后端 未结 14 1853
甜味超标
甜味超标 2021-01-30 12:52

I prefer to write solid shell code, so the errexit & nounset is alway set.

The following code will stop at bad_command line

#!/bin/b         


        
14条回答
  •  甜味超标
    2021-01-30 13:46

    How about this? If you want the actual exit code ...

    #!/bin/sh                                                                       
    set -e
    
    cat /tmp/doesnotexist && rc=$? || rc=$?                                         
    echo exitcode: $rc        
    
    cat /dev/null && rc=$? || rc=$?                                                 
    echo exitcode: $rc   
    

    Output:

    cat: /tmp/doesnotexist: No such file or directory
    exitcode: 1
    exitcode: 0
    

提交回复
热议问题