The return value of the Linux command
Quite useful for some monitoring scripts and probing commands;
Under Linux, whether you start a desktop program or run a command under the console, all programs end with a numeric value called the return value, or error number, which is called the value.
Under the console, there is a special environment variable $?, save the previous program's return value, we can try:
$ ls *.png
Diagram1.png Eqn.png Peazip.png
Eqn4.png Mandelbrot.png X2.png
$ echo $?
0
Just execute a command, like some of the LS files above, then pass echo $?, print $? The value ~
What does it mean when we find that the return value is 0?
As long as the return value is 0, it means that the program executed successfully ~
In other words, if $? The value of the variable is not 0, which means that the previous command failed during execution. We can try LS a non-existent file:
$ ls Linuxgem
LS: Unable to access linuxgem: No file or directory
$ echo $?
2
That way, for some commands that print out a bunch of unfamiliar English information, it's easy to see if it's done successfully.
However, echo $ every time? A bit too tired, okay, you can put $? Put in the hint character go:
[Email protected] ~ $ export ps1= "[\$?] ${PS1} "
[0] [Email protected] ~ $
Export ps1= "[\$?] ${PS1} "This command put $? The value is placed at the top of the prompt, so that each time the command is executed, the value will be automatically updated, which is a glance ~
So if the return value is not 0, how do we know where it went wrong? Most of the program error will give a hint, if not prompted, you can use perror This program to view the wrong information, such as the return value is 2, we can run:
$ perror 2
OS error code 2:no such file or directory
So it is clear that the original file does not exist ~
Error table:
"OS error code 1:operation not permitted"
"OS error code 2:no such file or directory"
"OS error code 3:no such process"
"OS error code 4:interrupted system call"
"OS error code 5:input/output error"
"OS error code 6:no such device or address"
"OS error code 7:argument list too long"
"OS error code 8:exec format error"
"OS error code 9:bad file descriptor"
"OS error code 10:no child processes"
"OS error code 11:resource temporarily unavailable"
"OS error code 12:cannot allocate memory"
"OS error code 13:permission denied"
"OS error code 14:bad address"
"OS error code 15:block device required"
"OS error code 16:device or resource Busy"
"OS error code 17:file exists"
"OS error code 18:invalid cross-device link"
"OS error code 19:no such device"
"OS error code 20:not a directory"
"OS error code 21:is a directory"
"OS error code 22:invalid argument"
"OS error code 23:too many open files in system"
"OS error code 24:too many open files"
"OS error code 25:inappropriate IOCTL for device"
"OS error code 26:text file Busy"
"OS error code 27:file too large"
"OS error code 28:no space left on device"
"OS error code 29:illegal seek"
"OS error code 30:read-only file System"
"OS error code 31:too many links"
"OS Error code 32:broken pipe"
"OS error code 33:numerical argument out of domain"
"OS error code 34:numerical result out of range"
"OS error code 35:resource deadlock avoided"
"OS error code 36:file name too long"
"OS error code 37:no locks available"
"OS error code 38:function not implemented"
"OS error code 39:directory not empty"
"OS error code 40:too Many levels of symbolic links"
"OS error code 42:no message of desired type"
"OS error code 43:identifier removed"
"OS error code 44:channel number out of range"
"OS error code 45:level 2 not synchronized"
"OS error code 46:level 3 halted"
"OS error code 47:level 3 Reset"
"OS error code 48:link number out of range"
"OS error code 49:protocol driver not attached"
"OS error code 50:NO CSI structure available"
"OS error code 51:level 2 halted"
"OS error code 52:invalid Exchange"
"OS error code 53:invalid request Descriptor"
"OS error code 54:exchange full"
"OS error code 55:no anode"
"OS error code 56:invalid request Code"
"OS error code 57:invalid slot"
"OS error code 59:bad font file format"
"OS error code 60:device not a stream"
"OS error code 61:no data available"
"OS error code 62:timer expired"
"OS error code 63:out of streams resources"
"OS error code 64:machine is not on the network"
"OS error code 65:package not installed"
"OS error code 66:object is remote"
"OS error code 67:link has been severed"
"OS error code 68:advertise error"
"OS error code 69:srmount error"
"OS error code 70:communication error on send"
"OS error code 71:protocol error"
"OS error code 72:multihop attempted"
"OS error code 73:rfs specific error"
"OS error code 74:bad message"
"OS error code 75:value too large for defined data type"
"OS error code 76:name not unique on network"
"OS error code 77:file descriptor in Bad state"
"OS error code 78:remote address changed"
"OS error code 79:can not access a needed shared library"
"OS error code 80:accessing a corrupted shared library"
"OS error code Bayi:. lib section in a.out corrupted"
"OS error code 82:attempting to link in too many shared libraries"
"OS error code 83:cannot exec a shared library directly"
"OS error code 84:invalid or incomplete multibyte or wide character"
"OS error code 85:interrupted system call should is restarted"
"OS Error code 86:streams pipe Error"
"OS error code 87:too many users"
"OS error code 88:socket operation on Non-socket"
"OS error code 89:destination address required"
"OS error code 90:message too long"
"OS error code 91:protocol wrong type for socket"
"OS error code 92:protocol not available"
"OS error code 93:protocol not supported"
"OS error code 94:socket type not supported"
"OS error code 95:operation not supported"
"OS error code 96:protocol family not supported"
"OS error code 97:address family not supported by protocol"
"OS error code 98:address already in use"
"OS error code 99:cannot assign requested address"
"OS error code 100:network is down"
"OS error code 101:network is unreachable"
"OS error code 102:network dropped connection on reset"
"OS error code 103:software caused connection abort"
"OS error code 104:connection reset by Peer"
"OS error code 105:no buffer space available"
"OS error code 106:transport endpoint is already connected"
"OS error code 107:transport endpoint is not connected"
"OS error code 108:cannot send after transport endpoint shutdown"
"OS error code 109:too many references:cannot splice"
"OS error code 110:connection timed out"
"OS error code 111:connection refused"
"OS error code 112:host is down"
"OS error code 113:no route to host"
"OS error code 114:operation already in progress"
"OS error code 115:operation now in progress"
"OS error code 116:stale NFS file Handle"
"OS error code 117:structure needs Cleaning"
"OS error code 118:not a xenix named type file"
"OS error code 119:no XENIX semaphores available"
"OS error code 120:is a named type file"
"OS error code 121:remote I/O error"
"OS error code 122:disk quota exceeded"
"OS error code 123:no medium found"
"OS error code 124:wrong medium Type"
"OS error code 125:operation canceled"
"OS error code 126:required key not available"
"OS error code 127:key has expired"
"OS error code 128:key has been revoked"
"OS error code 129:key is rejected by service"
"OS error code 130:owner died"
"OS error code 131:state not recoverable"
"MySQL error code 132:old database File"
"MySQL error code 133:no record read before Update"
"MySQL error code 134:record was already deleted (or Record file crashed)"
"MySQL error code 135:no more hostel in record file"
"MySQL error code 136:no more hostel in index file"
"MySQL error code 137:no more records (read after end of file)"
"MySQL error code 138:unsupported extension used for table"
"MySQL error code 139:too big Row"
"MySQL error code 140:wrong create Options"
"MySQL error code 141:duplicate unique key or constraint on write or update"
"MySQL error code 142:unknown character set used"
"MySQL error code 143:conflicting table definitions in sub-tables of MERGE table"
"MySQL error code 144:table is crashed and last repair failed"
"MySQL error code 145:table is marked as crashed and should be repaired"
"MySQL error code 146:lock timed out; Retry Transaction "
"MySQL Error code 147:lock table is full; Restart program with a larger locktable "
"MySQL error code 148:updates is allowed under a read only transactions"
"MySQL error code 149:lock deadlock; Retry Transaction "
"MySQL error code 150:foreign key constraint is incorrectly formed"
"MySQL error code 151:cannot add a child row"
"MySQL error code 152:cannot delete a parent row"
Transferred from: http://blog.csdn.net/wyabc1986/article/details/7876673
Go The return value of the Linux command