Shell入門

1.運行

1.1Shell分類:

Linux 的 Shell 種類衆多,常見的有:php

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)

……
經常使用的bash,即Bourne Again Shelllinux

1.2運行shell的兩種方式

  1. 做爲可執行程序
    將上面的代碼保存爲 test.sh,並 cd 到相應目錄:shell

    chmod +x ./test.sh  #使腳本具備執行權限
    ./test.sh  #執行腳本

    注意,必定要寫成 ./test.sh,而不是 test.sh,運行其它二進制的程序也同樣,直接寫 test.sh,linux 系統會去 PATH 裏尋找有沒有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 裏,你的當前目錄一般不在 PATH 裏,因此寫成 test.sh 是會找不到命令的,要用 ./test.sh 告訴系統說,就在當前目錄找。
    須要在第一行指定解釋器,指定解釋器的方法:數組

    #!/bin/bash
  2. 做爲解釋器參數
    這種運行方式是,直接運行解釋器,其參數就是 shell 腳本的文件名,如:bash

    /bin/sh test.sh    
    /bin/php test.php

    這種方式運行的腳本,不須要在第一行指定解釋器信息,寫了也沒用。工具

2.變量

  1. 定義變量
    直接定義,不加美圓符號$ eg:your_name="runoob.com"
  2. 使用變量spa

    echo $your_name   #加$e

    推薦給變量加花括號{ }code

    for skill in Ada Coffe Action Java; do
        echo "I am good at ${skill}Script"
    done
  3. 只讀變量
    在變量前加readonly eg:readonly your_name
  4. 刪除變量
    unset命令(只讀變量不能夠被刪除) eg:unset variable_name
  5. 單引號和雙引號的區別圖片

    單引號字符串的限制:ip

    • 單引號裏的任何字符都會原樣輸出,單引號字符串中的變量是無效的;
    • 單引號字串中不能出現單獨一個的單引號(對單引號使用轉義符後也不行),但可成對出現,做爲字符串拼接使用。

    雙引號的優勢:

    • 雙引號裏能夠有變量
    • 雙引號裏能夠出現轉義字符

3.數組

  1. 定義數組
    用括號來表示數組,數組元素用"空格"符號分割開。定義數組的通常形式爲:

    數組名=(值1 值2 ... 值n)

    單獨定義:

    array_name[0]=value0
  2. 讀取數組

    ${數組名[下標]}
    valuen=${array_name[n]}

    使用@獲取數組中全部元素

    echo ${array_name[@]}
  3. 獲取數組長度
    與獲取字符串長度相同
    取得數組元素的個數

    length=${#array_name[@]}

    或者

    length=${#array_name[*]}

    取得數組單個元素的長度

    lengthn=${#array_name[n]}
  4. 讀取數組元素

    ${array_name[index]}
    eg: ${my_array[0]}

4.傳遞參數

  1. 咱們能夠在執行 Shell 腳本時,向腳本傳遞參數,腳本內獲取參數的格式爲:$n。n 表明一個數字,1 爲執行腳本的第一個參數,2 爲執行腳本的第二個參數,以此類推……

    $0 爲執行的文件名
  2. 在爲shell腳本傳遞的參數中若是包含空格,應該使用單引號或者雙引號將該參數括起來,以便於腳本將這個參數做爲總體來接收。
    在有參數時,可使用對參數進行校驗的方式處理以減小錯誤發生:

    if [ -n "$1" ]; then          ##中括號 [] 與其中間的代碼應該有空格隔開
        echo "包含第一個參數"
    else
        echo "沒有包含第一參數"
    fi

    注意:的是中括號 [] 與其中間的代碼應該有空格隔開

5.計算

原生bash不支持簡單的數學運算,可是能夠經過其餘命令來實現,例如 awk 和 expr,expr 最經常使用。
expr 是一款表達式計算工具,使用它能完成表達式的求值操做。
例如,兩個數相加(注意使用的是反引號 ` 而不是單引號 '):

val=`expr 2 + 2`
echo "兩數之和爲 : $val"

下表列出了經常使用的算術運算符,假定變量 a 爲 10,變量 b 爲 20:
圖片描述
注意:條件表達式要放在方括號之間,而且要有空格,例如: 

[$a==$b] 是錯誤的,必須寫成 [ $a == $b ]。
相關文章
相關標籤/搜索