Shell編程指南_linux shell

來源:互聯網
上載者:User

基礎知識

shell執行方式   sh xx.sh (檔案須有r許可權)  ||  ./xx.sh (檔案須有x許可權) 註:sh xx.sh方式比較安全
檔案名稱尾碼 .sh
shell內容開頭 #!/bin/bash || #!/bin/sh || #!/bin/csh || #!/bin/ksh 註:#!/bin/bash 使用比較多
退出  exit 0

變數賦值與使用

不需要定義即可直接使用  註:變數賦值時=號兩端不能有空格
以$變數名或${變數名}訪問變數內容

流程式控制制

判斷  註:確保方括弧的空格 ; 確定每個條件都有then

複製代碼 代碼如下:

if [ –d ‘dirname' ];then
    命令集1
elif 條件2;then
    命令集2
else
     命令集4
fi

複製代碼 代碼如下:

case $變數 in
match_1 )
        命令集1
        ;;
match_2)
        命令集2
        ;;
……
*)(可選)
        命令集n
        ;;
esac

迴圈

1.while 條件

複製代碼 代碼如下:

do

        //TODO

done

2.until 條件

複製代碼 代碼如下:

do
    命令集
done

 
3.for ((初始值;條件;步進))

複製代碼 代碼如下:

do
    命令集
done

4.for 迴圈變數 in 變數列表

複製代碼 代碼如下:

do
    命令集
done

常用判斷條件陳述式

判斷檔案類型

測試標誌    語義    舉例
-e    “檔案或目錄”是否存在    test –e $file_name
-f    “檔案或目錄”是否存在且為檔案    test –f $file_name
-d    “檔案或目錄”是否存在且為目錄    test –d “/boot”
-b    “檔案或目錄”存在且為塊裝置    test –b “/dev/sda1”
-c    “檔案或目錄”存在且為字裝置    test –c “/dev/tty0”
-S    “檔案或目錄”存在且為Socket檔案    test –S “/var/run/rpcbind.sock”
-p    “檔案或目錄”存在且為FIFO檔案    test –p $file_name
-L    “檔案或目錄”存在且為連結檔案    test –L $file_name

判斷檔案許可權

測試標誌    語義
-r    “檔案或目錄”是否存在且具有可讀許可權
-w    “檔案或目錄”是否存在且具有可寫入權限
-x    “檔案或目錄”是否存在且具有可執行許可權
-u    “檔案或目錄”存在且具有SUID的屬性
-g    “檔案或目錄”存在且具有SGID的屬性
-k    “檔案或目錄”存在且具有Sticky bit的屬性
-s    “檔案或目錄”存在且為非空檔案

檔案之間比較

測試標誌    語義
-nt    “檔案名稱1”是否比”檔案名稱2”新 (newer than)
-ot    “檔案名稱1”是否比”檔案名稱2”舊(older than)
-ef    判斷”檔案名稱1”和”檔案名稱2”是否為同一個檔案,主要用來判斷永久連結,即兩個檔案是否指向同一個inode節點

整數之間比較

測試標誌    語義
-eq    兩數相等(equal)
-ne    兩數不等(not equal)
-gt    整數1大於整數2(greater than)
-lt    整數1小於整數2(less than)
-ge    整數1大於等於整數2(greater than or equal)
-le    整數1小於等於整數2(less than or equal)

與、或、非
測試標誌    語義
-a    (and) 兩個條件同時成立則返回true  test –e file1 –a –d file2
-o    (or)兩個條件任意一個成立則返回true  test –r file1 –o –x file2
!    (非)當前條件取非  test ! –d file1

控制結構

計算整數變數值

expr  註: 運算子號和參數之間要有空格分開;萬用字元號(*),在作為乘法運算子時要用\;
let 例子:let s=(2+3)*4

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.