[Bash] Exit code and Operators (||, &&, ;)
Exit code and Operators (&&, ||, 😉
When the previous command run successful, it returns 0
, otherwise 1
$ date
Wed Jun 26 12:17:17 EEST 2024
$ echo $?
0
$ ls awefawef/
ls: awefawef/: No such file or directory
$ echo $?
1
Usage
When we want to check a file exist or not, we can use test -f <filename>
command
# when cool.txt not exists
$ test -f cool.txt
$ echo $?
1
We can use a while
loop to check whether a file exist, if exist, we do some operation:
while test -f cool.txt; do date; sleep 1; done
Other use case can be with a chian command, you want to run next command only when previous command exit code is 0 by using &&
# if cool.txt not exist, you should not see echo "OK"
test -f cool.txt && echo OK
We also have ||
, so if first command successed, then second command won't run
# if cool.txt exist, you should not see echo "No such file"
test -f cool.txt || echo No such file
Operator: ;
Doesn't matter first command successed or not, second cmd will always run.
# you will see echo here
test -f cool.txt; echo here