一、set 查看set 幫助: 選項: e:任何命令執行失敗(非0 status)直接退出 x: 列印執行過程的命令行、參數 +e:命令執行失敗不會中斷退出 +x:不列印執行過程的命令行、參數 二、seq seq: 列印數字序列 用法:seq first [incr] last 三、eval && ...
一、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 來執行這個命令。
- 常見用法:
- 直接組合命令 : eval ls -al
- 替換變數
- 可以執行任何值為命令組合的變數
- 變數替換賦值
2.exec
- 也是shell內建的一個命令。類似 eval、source,不同的是exec執行後面的命令會替換當前shell進程,而前兩者不會。
- 常見用法:
- 用於分離執行腳本,並退出子腳本的shell進程
- 用於設置描述符重定向輸入文件內容
- 用於設置描述符重定向輸出內容至文件
四、&&和 ||
- command1 && command2 [&& command3 ...]
- 左邊的命令返回真後,右邊的命令才能夠被執行
- 只要有一個命令返回假,後面的命令就不會被執行
- command1 || command2
- 只有左邊的命令返回假($? ==1),右邊的命令才能被執行,即實現短路邏輯或操作。
- 只要有一個命令返回真,後面的命令就不會被執行