9:44 AMAn example to understand bash exit code $? in linux.
We very often use the inbuilt variable $? in linux to check the status of last command used.
To find if the last command is correctly executed, we fire echo $? always. If it return 0, the command is successfully completed else some error occured while executing the command.
See below example.
So the conclusion is $? retains the status code depending on the result of most recent command executed.
To make it more obvious, we take another example. What is the difference between below two statements:
if [ $? -eq 0 ] || [ $? -eq 127 ]; then echo 'something';
if [ $? -eq 0 -o $? -eq 127 ]; then echo 'something';
See the below example and try to understand.
In normal scenarions, both if statements should yield same result not here. Why??
The reason is the first if statement has [ ] blocks and the left part of it alters the value of $? so the right part of it does not have the original value of $? which means the right part also does not have value as 127 causing print 'elsething'
The second if statement comapres $? with 0 or 127 simultaneously without changing the value of $?. So, it matches with the exit code 127 which is the exit code of 'datee' command.
Ideally in this scenario, we must use the second statement to get the correct result. Though in other cases both statements can be used giving same result.
You may also like to see:
|What is runlevel in Linux?|
|Key mapping inside VI editor|
|CUT command in Linux : cut the file vertically|
|W3M : A text based web browser and pager from Linux terminal|
|STAT command : check file or filesystem statistics|
|Total comments: 0|