bash工作特性之命令执行状态返回值和命令行展开的讲解和实例

  • 命令执行状态返回值
    在Linux bash中可以用命令执行状态返回值来判断命令是否运行成功,而不需去关心命令返回的结果是多少。

    • bash通过状态返回值来得到输出结果;
      • 成功:返回值 0
          [root@localhost tmp]# ls
          aaa
          [root@localhost tmp]# mkdir $(date +%H-%m-%S)
          [root@localhost tmp]# ls
          04-02-49  aaa
          [root@localhost tmp]# echo $?
          0
      • 失败:返回值 1-255
        [root@localhost tmp]# ls llllllll
        ls: cannot access llllllll: No such file or directory
        [root@localhost tmp]# echo $?
        2
    • 命令执行完成后,状态返回值保存在bash的特殊变量$?中;
      $?只能获取最近一条命令的状态结果,还可以把 $?放在提示符里去,这样每次运行命令都能看到状态结果;

      [root@localhost tmp]# export PS1="[\$?]${PS1}"
      [0][root@localhost tmp]# ls llll
      ls: cannot access llll: No such file or directory
      [2][root@localhost tmp]#
    • 命令正常执行时,有的还会有命令返回值; 根据命令及其功能的不同,返回结果各不相同;
      引用命令的执行结果:$(COMMAND) 或 ‘COMMAND’
  • 命令行展开
    在Linux bash中使用命令行展开一步完成需要分开成多步完成的操作,而达到事半功倍的效果。在Linux指令参数位置使用”{}” 将相应的参数括起来,括号中的参数以逗号分隔,然后bash在执行这一指令时会自动将括号中的内容进行展开。

    1. 创建/tmp目录下的:a_c, a_d, b_c, b_d
      [0][root@localhost aabb]# ll
      total 0
      [0][root@localhost aabb]# mkdir {a,b}_{c,d}
      [0][root@localhost aabb]# tree
      .
      ├── a_c
      ├── a_d
      ├── b_c
      └── b_d
    2. 创建/tmp/mylinux目录下的:
      [0][root@localhost tmp]# ll
      total 0
      [0][root@localhost tmp]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
      [0][root@localhost mylinux]# tree
      .
      ├── bin
      ├── boot
      │   └── grub
      ├── dev
      ├── etc
      │   ├── rc.d
      │   │   └── init.d
      │   └── sysconfig
      │       └── network-scripts
      ├── lib
      │   └── modules
      ├── lib64
      ├── proc
      ├── sbin
      ├── sys
      ├── tmp
      ├── usr
      │   └── local
      │       ├── bin
      │       └── sbin
      └── var
       ├── lock
       ├── log
       └── run
      24 directories, 0 files

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91789

(1)
华龙华龙
上一篇 2018-03-01 00:08
下一篇 2018-03-01 12:15

相关推荐

  • 【招聘福利】普景/上海/运维工程师/8K起/双休/五险一金

    岗位要求:  经验可无,要求熟悉LANMP、zabbix的配置和维护  了解SQL语句  熟悉shell、会python 更佳岗位职责:  1. 负责zabbix的配置和维护,发现问题及时处理(如果你是有经验的童鞋,找出或者写出如Centreon类的软件优化邮…

    Linux干货 2016-04-15
  • 系统管理至grub故障排错及自建linux

    第二章    系统启动故障排除     1、grub配置文件写错,无法进入系统     步骤:(修复完成后记得修改配置文件为正确的文件)     方法一:进入启动菜单项后,修改菜单项为正确的内容,然后…

    Linux干货 2016-09-13
  • 第七周作业

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;        (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [ro…

    2017-04-05
  • 第一周作业

    1、描述计算机的组成及其功能。     运算器,控制器,存储器,输入设备,输出设备     CPU:运算器+控制器     内存,硬盘:存储器     输入设备:键盘鼠标   &n…

    Linux干货 2016-06-26
  • N22-第一周作业

    1、描述计算机的组成及功能      计算机系统由硬件系统和软件系统组成。硬件系统(Hardware system)是计算机完成计算工作  的物质基础。软件系统(Software system):是在计算机硬件设备上运行的各种程序,是介于用户  和硬件系统之间的界面。1.1 计算机的硬件系…

    Linux干货 2016-08-22

评论列表(1条)

  • 马哥教育
    马哥教育 2018-03-20 21:49

    没问题。