Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程序設計語言。
1,eg: #!/bin/sh
#! 告訴系統其後路徑所指定的程序即是解釋此腳本文件的 Shell 程序。
2,linux中的bash它是一個shell,人機對話的窗口,它是一個程序,是一個gnu軟件,一般linux中默認shell就是bash
運行shell腳本的兩種方式:
- 作爲可執行程序
- 賦予執行權限
- 執行腳本
eg:
chmod 777 hello.sh
./hello.sh
- 作爲解釋器參數
eg:
/bin/bash hello.sh
3,shell中的單雙引號
1>單引號裏的任何字符都會原樣輸出,單引號字符串中的變量是無效的;
單引號字串中不能出現單獨一個的單引號(對單引號使用轉義符後也不行),但可成對出現,作爲字符串拼接使用。
2>雙引號裏可以有變量
雙引號裏可以出現轉義字符
4,~在linux中代表用戶的主目錄,也就是所說的家目錄
對於一般用戶,~表示/home/用戶名
對於root用戶,~表示/root
5,只讀變量:使用 readonly 命令可以將變量定義爲只讀變量,只讀變量的值不能被改變。
6,刪除變量:使用 unset 命令可以刪除變量。
eg:
#! /bin/bash
myUrl="http://www.baidu.com"
echo $myUrl
readonly myUrl
myUrl="http:www.taobao.com"
myUrl_1="http://www.runoob.com"
echo $myUrl_1
unset myUrl_1
echo $myUrl_1
結果:
7,獲取字符串長度,提取,查找子字符串
#! /bin/bash
#獲取字符串長度
one="hello"
two="world"
echo ${#one}
#提取子字符串
echo ${two:2:4}
#查找字符o的位置
echo `expr index "$one" o`
結果:
8,數組:Bash Shell 只支持一維數組(不支持多維數組),初始化時不需要定義數組大小。
eg:
#! /bin/bash
one=(a b c "erwe")
echo ${one[2]}
echo ${one[3]}
#獲取數組的元素
echo "數組的元素是:${one[*]}"
echo "數組的元素是:${one[@]}"
#獲取數組的長度
echo "數組元素的個數爲:${#one[*]}"
echo "數組元素的個數爲:${#one[@]}"
結果: