Linux Shell 編程常見規則及退出狀態碼


 

狀態碼 描述
0 命令成功結束
1 通用未知錯誤  
2 誤用Shell命令
126 命令不可執行
127 沒找到命令
128 無效退出參數
128+x Linux信號x的嚴重錯誤
130 命令通過Ctrl+C控制碼越界
255 退出碼越界

狀態碼訪問:

$echo $?

Shell符號規則,現總結備忘如下:

1.方括號[]

一般來說常用於test命令

example:

[ $arg1 = $arg2 ] :檢查兩個參數是否相等。

[ -d $HOME ]  --檢查$HOME代指是否為目錄文件,若是則返回狀態碼0,這種情況下才判斷成功

其實質相當於test -d $HOME,我們可以用

$echo $? 檢測狀態碼

 

2.雙圓括號(( expression ))

作用:雙圓括號允許你將高級數學表達式放入比較中

下面是雙圓括號所支持的命令符號:

雙圓括號命令符號
                    符號                                                                          描述                                                   
val++ 后增
val-- 后減
++val 先加
--val 先減
! 邏輯求反
~ 位求反
** 冪運算
<< 左位移
>>  右位移
&  位布爾和
|  位布爾或
&&  邏輯和
||  邏輯或

 3.雙方括號 [[ expression ]]

 作用:提供了針對字符串比較高級特性,除了可以像方括號使用test命令那樣之外,還可以進行模式匹配。

 

4.$[ operation ]

作用:執行數學表達式

example:

var3=$[ $var1 / $var2 ]

 5.命令行參數

5.1如何簡單接受命令行參數

$0 : 程序名

$1-$9:字符串或者數值參數。

${10}10個參數以上表達方式

參數計數:$#,這個變量跟C語言中的argc是一樣的作用,只不過沒有顯示的表示而已。

5.2 如何遍歷參數 :$*和$@的區別

區分codes(來自Linux 命令行與shell腳本編程大全):

res:

5.3 如何處理選項與參數

codes:

 1 #!/bin/bash
 2 while [ -n "$1" ]
 3 do
 4 
 5    case "$1" in
 6 
 7     -a) echo "Found the -a option" ;;
 8 
 9      -b) echo "Found the -a option" ;;
10 
11     -c) echo "Found the -a option" ;;
12 
13     --) shift break  ;;
14 
15   esac
16 
17   shift
18 
19 done
20 
21 count=1
22 
23 for param in $@
24 
25 do
26 
27   echo "Parameter #$count: $param"
28 
29   count=$[ $count +1 ]
30 
31 done

 6、Shell的輸入與輸出

這里只說明幾種特殊的情況:

a.只重定向錯誤輸出:

方法:將對應的文件描述符寫在重定向符號前面。

b.臨時重定向

方法:在文件描述符前加and(&)

$echo "This is an error message" >&2

c.永久重定向

方法:用exec來告訴shell在腳本運行期間重定向某個文件描述符。

$exec 1>testout


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM