Linux 腳本語言入門

0、腳本編寫初步介紹

(1)腳本第一行以 #!/bin/sh 開始,也能夠用 #!/bin/bash 開始,可是第一行必須以這種方式開始.html

(2)腳本名須要以.sh結尾shell

(3)#開頭的句子表示註釋數組

(4)若要執行腳本文件,需給腳本賦權限,chmod 755 filenmebash

(5)腳本執行./filename函數

一、基本語法

(1)變量:

  • 變量的類型:

運行shell時,會同時存在三種變量:
1) 局部變量
局部變量在腳本或命令中定義,僅在當前shell實例中有效,其餘shell啓動的程序不能訪問局部變量。
2) 環境變量
全部的程序,包括shell啓動的程序,都能訪問環境變量,有些程序須要環境變量來保證其正常運行。必要的時候shell腳本也能夠定義環境變量。
3) shell變量
shell變量是由shell程序設置的特殊變量。shell變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了shell的正常運行工具

  • 特殊變量:

定義變量:
m=100
使用變量:
echo $m
echo ${m}

注:oop

1,變量名和等號之間不能有空格;測試

2,首個字符必須爲字母(a-z,A-Z)。spa

3, 中間不能有空格,可使用下劃線(_)。3d

4, 不能使用標點符號。

5, 不能使用bash裏的關鍵字(可用help命令查看保留關鍵字)。

6,對於變量的{} 是能夠選擇的, 它的目的爲幫助解釋器識別變量的邊界.

7,$* 和 $@ 的區別爲: $* 和 $@ 都表示傳遞給函數或腳本的全部參數,不被雙引號(" ")包含時,都以"$1" "$2" … "$n" 的形式輸出全部參數。可是當它們被雙引號(" ")包含時,"$*" 會將全部的參數做爲一個總體,以"$1 $2 … $n"的形式輸出全部參數;"$@" 會將各個參數分開,以"$1" "$2" … "$n" 的形式輸出全部參數。

8,$? 能夠獲取上一個命令的退出狀態。所謂退出狀態,就是上一個命令執行後的返回結果。退出狀態是一個數字,通常狀況下,大部分命令執行成功會返回 0,失敗返回 1。

(2)shell中的字符串:

  • 單引號:
  1. 單引號裏的任何字符都會原樣輸出,單引號字符串中的變量是無效的;
  2. 單引號字串中不能出現單引號(對單引號使用轉義符後也不行)。
  • 雙引號:
  1. 雙引號裏能夠有變量
  2. 雙引號裏能夠出現轉義字符

(3)shell中的替換:

  • 轉義符:

在echo中能夠用於的轉義符有:

  • 變量替換:

能夠根據變量的狀態(是否爲空、是否認義等)來改變它的值.

 

(4)shell中的運算符:

  •  算術運算符:

原生bash不支持簡單的數學運算,可是能夠經過其餘命令來實現,例如 awk 和 expr. 下面使用expr進行;  expr是一款表達式計算工具,使用它能夠完成表達式的求值操做;

 

  • 關係運算符:

只支持數字,不支持字符串,除非字符串的值是數字。常見的有:

 

  • 布爾運算符:

  • 字符串運算符:

 

  • 文件測試運算符:

 檢測 Unix 文件的各類屬性。

(5)shell中的數組:

bash支持一維數組, 不支持多維數組, 它的下標從0開始編號. 用下標[n] 獲取數組元素;

  • 定義數組:

在shell中用括號表示數組,元素用空格分開。 如:

array_name=(value0 value1 value2 value3)

也能夠單獨定義數組的各個份量,能夠不使用連續的下標,並且下標的範圍沒有限制。如:

array_name[0]=value0
array_name[1]=value1
array_name[2]=value2
  • 讀取數組:

讀取某個下標的元素通常格式爲:

${array_name[index]}

讀取數組的所有元素,用@或*

${array_name[*]}
${array_name[@]}
  • 獲取數組的信息:

取得數組元素的個數:

length=${#array_name[@]}
#或
length=${#array_name[*]}

獲取數組的下標:

length=${!array_name[@]}
#或
length=${!array_name[*]}

取得數組單個元素的長度:

lengthn=${#array_name[n]}

 

二、簡單控制語句:

(1)if 語句:

包括:
1if

if  [ 表達式 ] 
then  
  語句  
fi

2.  if else

if  [ 表達式 ] 
then 
  語句 
else 
  語句 
fi

3.  if else if

if  [ 表達式] 
then 
  語句  
elif  [ 表達式 ] 
then 
  語句 
elif  [ 表達式 ] 
then 
  語句
fi

例:

包括:
1if

a=5
if [ $a -lt 10 ]
then
 echo $a
fi


2.  if else

m=5
if [$m -lt 3 ]
then
  echo $m+1
else
  echo $m
fi

3.  if else if

if [ $1 -lt 3 ]
then
  val=`expr $1 + 1`
  echo $val
elif [ $1 -gt 6 ]
then
  val=`expr $1 - 1`
  echo $val
else
  echo $1
fi

注:expr先後爲反引號··,運算符+、-先後須要空格

(2)for循環:

格式:

for 變量 in 列表
do
    command1
    command2
    ...
    commandN
done

注:列表是一組值(數字、字符串等)組成的序列,每一個值經過空格分隔。每循環一次,就將列表中的下一個值賦給變量。

例:

for loop in 1 2 3 4 5
do
    echo "The value is: $loop"
done

 

(3)while循環:

格式:

while command
do
   Statement(s) to be executed if command is true
done

例:

int=1
m=8
while(( $int<=5 ))
do
 m=9
 echo $int
 echo $m
 let "int++"
done

 

 

轉自博客園1

相關文章
相關標籤/搜索