Linux系统支持多条命令顺序执行,就是我可以依次输入多条命令后,统一按Enter键,顺序执行。

1、多命令执行符

在多个命令之间加;即可多命令顺序执行。

命令格式:命令1 ; 命令2

说明:

  • 多个命令顺序执行,命令之间可以没有任何逻辑联系。
    [root@localhost ~]# ls ; date ; cd /etc/
    anaconda-ks.cfg install.log install.log.syslog
    2020 03月 29日 星期日 05:08:28 CST
    [root@localhost etc]#
  • 不管前面的命令是否正确执行,后面的命令都会执行。
    [root@localhost ~]# lswrqwr ; date ; cd /etc/
    -bash: lswrqwr: command not found
    2020 03月 29日 星期日 05:08:28 CST
    [root@localhost etc]#

2、多命令执行符&&

&&又叫逻辑与执行符。

命令格式:命令1 && 命令2

说明:

  • 当命令1正确执行($?=0),则命令2才会执行。
  • 当命令1执行不正确($?≠0),则命令2不会执行。
  • 命令1和命令2之间可以没有任何逻辑联系。
  • 练习1:命令1正确执行。
    [root@localhost ~]# ls && echo yes
    anaconda-ks.cfg install.log install.log.syslog
    yes
  • 练习2:命令1不正确执行。
    [root@localhost ~]# lsfgdf && echo yes
    -bash: lsfgdf: command not found

说明:($?=0)这里先不说什么意思,后边预定义变量在讲。

3、多命令执行符||

||又叫逻辑或执行符。

命令格式:命令1 || 命令2

说明:

  • 当命令1执行不正确($?≠0),则命令2才会执行。
  • 当命令1正确执行($?=0),则命令2不会执行。
  • 命令1和命令2之间可以没有任何逻辑联系。
  • 练习1:命令1正确执行。
    [root@localhost ~]# ls && echo no
    anaconda-ks.cfg install.log install.log.syslog
  • 练习2:命令1不正确执行。
    [root@localhost ~]# lsfgdfgg && echo no
    -bash: lsfgdfgg: command not found
    no

4、&&||联合应用

&&||两个执行符可以联合应用,来判断命令是否正确执行。

执行语句:

[root@localhost ~]# ls  && echo yes || echo no

如果ls命令正确执行了,则echo yes命令就会执行,会输出一个yesecho no命令判断前边echo yes命令执行了,则echo no命令则不会执行。

如果ls命令报错了,则echo yes命令就不会被执行,echo no命令需要判断前边的命令是否执行错误,因为echo yes命令没有执行,被跳过了,所以是判断ls命令是否报错,而ls命令报错了,则执行echo no命令,输出no

换句话说,ls位置的命令,如果正确执行,则输出yes,如果错误执行,则输出no

(所以需要注意的是,需要判断命令执行是否出错,而不是命令是否执行。不执行的命令就被挖掉,不予判断。)

练习:

[root@localhost ~]# ls && echo yes || echo no
anaconda-ks.cfg install.log install.log.syslog
yes [root@localhost ~]# lsfgjhg && echo yes || echo no
-bash: lsfgjhg: command not found
no

提出一个问题:

我能不能把上边命令中的&&||的位置互换?

答案是不能。

直接看例子,自己推导:

[root@localhost ~]# ls || echo yes && echo no
anaconda-ks.cfg install.log install.log.syslog
no [root@localhost ~]# lsfgjhg || echo yes && echo no
-bash: lsfgjhg: command not found
yes
no

结论:这是一个固定格式。

『忘了再学』Shell基础 — 7、Bash基本功能(多命令顺序执行)的更多相关文章

  1. 『忘了再学』Shell基础 — 31、字符处理相关命令

    目录 1.排序命令sort (1)sort命令介绍 (2)练习 2.取消重复行命令uniq 3.统计命令wc 1.排序命令sort (1)sort命令介绍 sort命令可针对文本文件的内容,以行为单位 ...

  2. 『忘了再学』Shell基础 — 26、cut列提取命令

    目录 1.cut命令说明 2.cut命令练习 (1)cut命令基本用法 (2)cut命令选取多列 (3)按字符来进行提取 (4)按指定分隔符进行截取数据 3.cut命令分隔符说明 1.cut命令说明 ...

  3. 『忘了再学』Shell基础 — 17、预定义变量

    目录 1.预定义变量$? 2.预定义变量$$和$! 我们之前说过,Shell中的变量不是按照变量值的类型来进行分类的,而是按照Linux系统中定义的变量类别来分类的. 预定义变量就是,事先把变量的名称 ...

  4. 『忘了再学』Shell基础 — 3、echo命令的介绍与使用

    目录 1.echo命令的作用 2.echo命令的基本用法 3.echo命令的-e选项用法 4.echo命令一些特殊用法 (1)输出字符带有字体颜色 (2)输出字符带有背景颜色 在讲Shell脚本之前, ...

  5. 『忘了再学』Shell基础 — 10、Bash中的特殊符号(二)

    提示:本篇文章接上一篇文章,主要说说()小括号和{}大括号的区别与使用. 8.()小括号 ():用于一串命令执行时,()中的命令会在子Shell中运行.(和下面大括号一起说明) 9.{}大括号 {}: ...

  6. 『忘了再学』Shell基础 — 1、Shell的介绍

    目录 1.Shell的由来 2.Shell的两种执行指令方式 3.什么是Shell脚本 4.Shell 是一种脚本语言 1.Shell的由来 我们比较熟悉Windows系统的图形化界面,对于图形界面来 ...

  7. 『忘了再学』Shell基础 — 4、Bash基本功能(history命令)

    目录 1.history历史命令 2.设置命令历史记录的条数 3.清空历史命令 4.历史命令的调用 5.命令与文件的补全 在Linux系统中默认的Shell就是Bourne-AgainShell(简称 ...

  8. 『忘了再学』Shell基础 — 2、Shell的作用与分类

    目录 1.Shell的作用 2.Shell的分类 1.Shell的作用 Shell除了能解释用户输入的命令,将它传递给内核,还可以: 调用其他程序,给其他程序传递数据或参数,并获取程序的处理结果. 在 ...

  9. 『忘了再学』Shell基础 — 8、管道符介绍

    我们之前已经有文章说过管道符了,今天这里再简单总结一下用法. 1.行提取命令grep grep命令的作用,是在指定的文件中,搜索符合条件的字符串. 命令格式: [root@localhost ~ ] ...

  10. 『忘了再学』Shell基础 — 32、Shell中test测试命令详解

    目录 1.test测试命令 (1)test命令介绍 (2)test命令使用方式 (3)示例 2.按照文件类型进行判断 3.按照文件权限进行判断 4.两个文件之间进行比较 5.两个整数之间比较 6.字符 ...

随机推荐

  1. Python post中session和auth 的三种方法

    1.方式一,获取session后.存储起来.下次调用时候,传递一个session植即可 #/bin/python # -*- coding: utf-8 -*- import requests fro ...

  2. Mysql的用户管理与授权

    Mysql用户管理 本人使用的是Mysql8.0的版本,可能会有一些语句不兼容: 1.用户管理 在Mysql中支持创建账户,并给账户分配权限:例如只拥有数据库A操作的权限.只拥有数据库B中某些表的权限 ...

  3. 详细了解 synchronized 锁升级过程

    前言 首先,synchronized 是什么?我们需要明确的给个定义--同步锁,没错,它就是把锁. 可以用来干嘛?锁,当然当然是用于线程间的同步,以及保护临界区内的资源.我们知道,锁是个非常笼统的概念 ...

  4. Java 类方法和类变量

    目录 一.类变量 1.如果定义类变量 2.如何访问类变量 3.类变量的使用注意事项和细节 二.类方法 1.类方法的形式 2.类方法的调用 3.类方法经典使用场景 4.类变量和类方法 三.main方法 ...

  5. 关于php接受xml的一些问题,simplexml_load_string收不到数据

    接受xml数据一般使用这两种方法 方法1: file_get_contents('php://input'); 方法2: simplexml_load_string($GLOBALS['HTTP_RA ...

  6. keepalived yum安装后启动报错解决

    [root@centos8 ~]yum install keepalived -y [root@centos8 ~]systemctl start keepalived.services [root@ ...

  7. 关于BFS

    嗨,又是躺平的一天呢 下文有很多未经版权允许而私自转载,不喜勿喷 今天我来整理亿下关于 BFS 这个"高级"的东西: 首先,我不得不提亿句 关于队列 是个啥 队列(queue)是一 ...

  8. Windows安全加固手册

    1      身份鉴别 1.1         密码安全策略 要求:操作系统和数据库系统管理用户身份鉴别信息应具有不易被冒用的特点,口令应有复杂度要求并定期更换. 目的:设置有效的密码策略,防止攻击者 ...

  9. python写一个web目录扫描器

    用到的模块urliib error #coding = utf-8 #web目录扫描器 by qianxiao996 #博客地址:https://blog.csdn.net/qq_36374896 i ...

  10. Linux下swap(交换分区)的增删改

    swap介绍 Linux 的交换分区(swap),或者叫内存置换空间(swap space),是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合.交换分区的作用是,当系统物理内存吃 ...