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),右邊的命令才能被執行,即實現短路邏輯或操做。
    • 只要有一個命令返回真,後面的命令就不會被執行
相關文章
相關標籤/搜索