您的位置:首页 > 运维架构 > Linux

[一天几个linux命令] 命令执行的决断依据 ; && ||

2017-05-27 16:07 337 查看

一次输入执行多个命令

1.通过shell script编写脚本去执行

2.cmd; cmd; cmd

#执行echo "A' 执行 echo "b" 执行 echo "c"
[jianglei@localhost ~]$ echo "A"; echo "b"; echo "c"
A
B
c


$?(命令回传码) 与 && 或 ||

如果两个命令彼此之间是有相关性的,前一个命令是否成功的执行与后一个命令是否要执行有关,那就得运用到&& 或 ||

$?(命令回传码)

若前一个命令执行的结果为正确,在Linux下面会回传一个$?=0的值,如果错误回传一个非0的值。

#正确执行的命令
[jianglei@localhost ~]$ ls >/dev/null
[jianglei@localhost ~]$ echo $?
0


ls 的退出状态

状态值状态
0执行成功
1小问题
2严重问题
#错误执行的命令 test再当前文件夹下是不存在的
[jianglei@localhost ~]$ ls test2 >/dev/null
[jianglei@localhost ~]$ echo $?
2


&& ||的执行情况

命令执行情况说明
cmd1 && cmd2cmd1正确执行,则开始执行cmd2;cmd1错误执行,则不执行cmd2
cmd1 || cmd2cmd1正确执行,则不执行cmd2;cmd1错误执行,则开始执行cmd2
打印 /tmp/abc 如果不存在创建 /tmp/abc目录

[jianglei@localhost ~]$ ls /tmp/abc || mkdir /tmp/abc


我们想要创建/tmp/abc/hehe这个文件,但我们并不知道/tmp/abc是否存在,那该如何是好

[jianglei@localhost ~]$ ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/hehe


整体流程如下图所示



以ls测试/tmp/vbirding是否存在,若存在则显示”exit”,若不存在,则显示”not exit”

[jianglei@localhost ~]$ ls /tmp/vbirding && echo "exists" || echo "not exists"


命令是一个接一着一个去执行的,因此,如果真要使用判断,那么这个&&与||的顺序就不能搞错。一般来说,假设判断式有三个,也就是:

command1 && command2 || command3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: