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

相关推荐

  • 三剑客之Sed

    sed:stream editor(流编辑器) 工作特性:并不直接处理文本文件本身,处理机制为每当处理一个文件的时候,它会逐行读取,每次把一行读取到内存空间中去,而后在模式空间(pattern space)中完成编辑.并把编辑好的结果输出到屏幕上  功      能:数据替换、删除、增加、等,数据为关键字或者一整行, …

    Linux干货 2016-08-08
  • 第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@unclez ~]#  grep -E "^[[:space:]]+.*" /boot/grub/grub.cong 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟…

    Linux干货 2016-12-31
  • LAMP架构实验1

    LAMP架构实验 — 基础架构搭建 实验实验拓扑图与目的 实验过程 总结与问题 实验实验拓扑图与目的 1. 实验主框架LAMP采用编译安装。 2. 分离HTTPD,PHP,MARIADB。 3. 两台服务器能够各自被访问且内容相同。 实验过程 程序包准备: apr-1.5.2.tar.gz          …

    Linux干货 2016-05-10
  • N25-第九周博客作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # 统计登录用户和非登陆用户的个数 # author: han declare -i loginnum=0 declare -i nologinnum=0 whil…

    Linux干货 2017-02-24
  • Linux – 计算机基础知识体系

    一、认识计算机的组成      计算机组成(computer composition)指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。 计算机一般是由硬件系统和软件系统这两部分组成,硬件系统包括:CPU、内存、硬盘、输入和输出设备(键盘鼠标、显示器等),软件系统包括:系统软件自身、用…

    Linux干货 2017-02-19
  • 详解用户,组,权限管理

    详解用户,组,权限管理 M21-陆东贵 测试环境:CentOS 7.2 内容介绍: 我们要使用操作系统进行工作,就需要人机交互操作,这时候计算机就需要创建用户,通过用户来实现操作,而且随着用户的增加需要给用户分组,这时候就需要对文件进行权限管理。 需要使用的工具:       用户相关工具:useradd; …

    Linux干货 2016-10-25

评论列表(1条)

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

    没问题。