[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
posted @ 2024-06-26 17:31  Zhentiw  阅读(7)  评论(0编辑  收藏  举报