zoukankan      html  css  js  c++  java
  • shell中的set、seq、eval、exec、&&和||

    一、set

    查看set 帮助:

    bash -c "help set"
    

    选项:

    • -e:任何命令执行失败(非0 status)直接退出
    • -x: 打印执行过程的命令行、参数
    • +e:命令执行失败不会中断退出
    • +x:不打印执行过程的命令行、参数

    二、seq

    seq: 打印数字序列

    用法:seq first [incr] last

    NAME
         seq -- print sequences of numbers
    
    SYNOPSIS
         seq [-w] [-f format] [-s string] [-t string] [first [incr]] last
    
    ➜  blj seq 0 2
    0
    1
    2
    

    三、eval && exec

    都是内建命令。

    1.eval

    • bashshell中内建的一个命令,命令后面所跟的内容都认为是参数,但是会两次扫描其参数:第一次扫描会将参数中的变量进行替换;第二次扫描会将后面的参数当作一个shell中的命令组合来执行命令。
    • 实际使用中,可以将任意组合的命令赋值给一个变量,然后在需要的位置通过 eval $variable 来执行这个命令。
    • 常见用法:
      1. 直接组合命令 : eval ls -al
      2. 替换变量
      3. 可以执行任何值为命令组合的变量
      4. 变量替换赋值

    2.exec

    • 也是shell内建的一个命令。类似 eval、source,不同的是exec执行后面的命令会替换当前shell进程,而前两者不会。
    • 常见用法:
      1. 用于分离执行脚本,并退出子脚本的shell进程
      2. 用于设置描述符重定向输入文件内容
      3. 用于设置描述符重定向输出内容至文件

    四、&&和 ||

    • command1 && command2 [&& command3 ...]
      • 左边的命令返回真后,右边的命令才能够被执行
      • 只要有一个命令返回假,后面的命令就不会被执行
    • command1 || command2
      • 只有左边的命令返回假($? ==1),右边的命令才能被执行,即实现短路逻辑或操作。
      • 只要有一个命令返回真,后面的命令就不会被执行
  • 相关阅读:
    servlet
    grep命令
    sort排序命令
    shell脚本面试
    查看远端的端口是否通畅3个简单实用案例!
    mail命令
    linux系统优化的方法
    shell数组
    shell函数介绍语法说明及基本例子
    循环结构的多个控制命令对比与实际案例
  • 原文地址:https://www.cnblogs.com/amyzhu/p/10596495.html
Copyright © 2011-2022 走看看