符合 |
含義 |
&& |
command1 && command2:命令1返回真(命令返回值 $? == 0)後,命令2才能被執行。可以用於if判斷。 cp 1.txt ../ && echo "succes" #-->success cp 1.txt ../ && rm -f ../1.txt && echo "success" -->success |
|| |
command1 || command2:命令1返回假(命令返回值 $? == 1)後,命令2才能被執行。可以用於if判斷。 cp 1.txt ../ || echo "fail" #-->fail cp 1.txt ../ || rm ../1.txt || echo "fail" -->fail |
& |
command1 & command2 & command3 :3個命令同時執行 command &:comand命令在後台運行,實際上是將命令放入到一個作業隊列中。預設情況下,進程是前台進程,這時就把Shell給佔據了,我們無法進行其他動作,對於那些沒有互動的進程,很多時候,我們希望將其在後台啟動,可以在啟動參數的時候加一個‘&‘實現這個目的。 前後台間切換:可以通過bg <jobid>(background)和fg<jobid>(foreground)命令將其在前後台間狀態切換。 |
| |
管道,上一個的命令輸出作為下一個命令的輸入; 把前面的命令啟動並執行結果丟給後面的命令. 並不是所有的命令都可以的,一般針對文檔操作的命令比較常用,例如cat, less, head, tail, grep, cut, sort, wc, uniq, tee, tr, split, sed, awk等等,其中grep, sed, awk為Regex必須掌握的工具 ls | wc –l -->11 |
( ) |
( command1;command2;command3;... ):執行一組命令,命令群組概念,命令自己用;隔開,末尾命令可以不用;隔開,第一個命令與(之間可以沒有空格 ( pwd;cd ..;pwd ) #-->/home/robot /home |
[ ] |
用於測試命令,可以理解為test命令 if [ "$?" != 0 ] <==> if test "$?" != 0 |
$[ ] |
整數計算(+-*/%): echo $[2-3] -->1 浮點數計算(+-*/):c=$(echo "0.5/0.5"|bc);echo $c -->1 |
$(()) |
對括弧內的運算式求值, echo $((1+1)) -->2 整數運算+-*/% |
{ } |
{ command1;command2;command3;... }:執行一組命令, 命令群組概念,命令自己用;隔開,末尾命令也需要;隔開,第一個命令與{之間必須有空格 A=1;echo $A;{ A=2; };echo $A #--> 1 2 A=1;echo $A;( A=2; );echo $A #--> 1 1 |
(( )) |
這組符號的作用與 let 指令相似,用在算數運算上,是 bash 的內建功能 |
"" |
雙引號,把它所包含的內容作為一般字元,但單引號‘’,反斜線\,貨幣符號$,反單引號``除外 a=1;echo "1+$a";-->1+1 a=1;echo "1+‘$a‘";-->1+‘1‘ a=1;echo "1+$‘a‘";-->1+$‘a‘ echo "\$a";->$a |
‘‘ |
單引號,把它所包含的內容作為一般字元,無例外 a=1;echo ‘1+$a‘;-->1+$a |
`` |
反單引號(與~同一鍵),`command`與$(command)的含義相同,都是返回當前執行命令的結果 命令替換,命令替換是指Shell可以先執行命令,將輸出結果暫時儲存,在適當的地方輸出。 p=`pwd`;echo $p; -->/home
|
\ |
逸出字元, 把符號(eg:*|&)的特定含義去掉,使其變成普通標點符號 |
; |
;分號:在 shell 中,擔任"連續指令"功能的符號就是"分號" command1;command2;command3:不管前面的命令執行成功與否,後面的命令繼續執行 |
;; |
連續分號:專用在 case 的選項,擔任 Terminator 的角色 |
# |
#井號:注釋 |
! |
通常它代表反邏輯的作用,如條件判斷中,用 != 來代表"不等於" |
? |
代表任意一個字元 |
* |
代表零個或多個字元或數字 |
** |
次方運算 echo $((2**3)) –>8 |
$ |
變數取值 a=1;echo $a;-->1 |
|
|
|
|