1. 程式人生 > >linux中的shell編程----基礎

linux中的shell編程----基礎

... string 實例 只讀 new 所在 {} uri shell

1,運行shell腳本有兩種辦法一般有兩種:

先給可執行權限,再進入文件所在的目錄,輸入:./name.sh;

運行解釋器再執行腳本:/bin/sh name.sh,這種情況下,腳本中可以沒有#!/bin/bash的情況。

2,shell變量

變量命名規則:

  1. 命名只能使用英文字母,數字和下劃線,首個字符不能以數字

    開頭。
  • 變量名和等號,變量名中間也不能有空格,可以使用下劃線(_)。
  • 不能使用標點符號。
  • 不能使用bash裏的關鍵字

變量賦值:

直接賦值

可以使用for xx in name 循環,for i in " ls /home" for i in $(ls /home) ; ps:第一種i會直接等於‘ls /home‘,這和python不一樣,它直接就是整個的字符串,第二種比較靠譜,遍歷所有/home下的文件夾和文件名。還有一種要區分一下,是for i in `ls /home`,(註意這不是引號,是~那個鍵),作用和$()一樣

使用變量:

比如: your_name="qinjx‘

用法1:echo $your_name $直接加變量名字

用法2:echo ${your_name} ${}中間是變量名字,花括號有助於幫助shell識別邊界。

比如:your_name="qinjx"

        greeting="hello, "$your_name" !"    #用法1
        greeting_1="hello, ${your_name} !"    #用法2

特殊用法:只讀變量:readonly your_name,加上readonly以後,該變量只能被讀,不能被重新賦值,不能改變。


刪除變量:unset your_name ,註意不可以刪除只讀變量

變量類型

1) 局部變量 局部變量在腳本或命令中定義,僅在當前shell實例中有效,其他shell啟動的程序不能訪問局部變量。

2) 環境變量 所有的程序,包括shell啟動的程序,都能訪問環境變量,有些程序需要環境變量來保證其正常運行。必要的時候shell腳本也可以定義環境變量。

3) shell變量 shell變量是由shell程序設置的特殊變量。shell變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了shell的正常運行

shell字符串

shell中變量的類型基本就兩種,數字和字符串,字符串可以使用單雙引號來表明,雙引號比較好,因為雙引號內部支持轉義字符和引用其他變量。

比如:

astring=‘qinjx‘

str="Hello, I know you are \"$astring\"! \n"

常用字符串操作

astring="hello shell"

獲取字符串長度:echo ${#astring} 輸出11

截取字符串:echo ${astring:0:4} 輸出hell 和python不同,它表示從0後面的個字符串開始,向後截取4個,順便說一句,shell的下標和python不一樣,shell下標從1開始。

查找字符串:echo ‘expr index "$astring" o` 輸出5 。(這是反引號)意思是從變量astring中查找字符o,

3 shell數組

shell支持數組。數組的下標從0開始。數組用小括號表示,數字之間用空格分開。

數組的定義方法1:alist=(1 2 3 4 5)

方法2:alist[0] =1;alist[1]=alist[2]=3;alist[3]=4...

讀取數組:${數組名[下標]},比如${alist[0]} ,@可以表示數組中所有的下標:${alist[@]}

獲得數組元素個數:echo ${#alsit[@]}

獲得數組某個元素的長度:echo ${#alist[number]}

4 shell註釋

兩種註釋應該夠用了。

1,#在開頭

2,

:<<EOF
註釋內容...
註釋內容...
註釋內容...
EOF

linux中的shell編程----基礎