shell中的set、seq、eval、exec、&&和||

1、set

查看set 帮助:shell

bash -c "help set"

选项:bash

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

2、seq

seq: 打印数字序列命令行

用法:seq first [incr] lastcode

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

3、eval && exec

都是内建命令。orm

1.eval进程

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

2.execstring

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

4、&&和 ||

  • command1 && command2 [&& command3 ...]
    • 左边的命令返回真后,右边的命令才可以被执行
    • 只要有一个命令返回假,后面的命令就不会被执行
  • command1 || command2
    • 只有左边的命令返回假($? ==1),右边的命令才能被执行,即实现短路逻辑或操做。
    • 只要有一个命令返回真,后面的命令就不会被执行
相关文章
相关标签/搜索