shell script 之一:變量和賦值


變量命名:

- 命名只能使用英文字母,數字和下划線,首個字符不能以數字開頭。

- 中間不能有空格,可以使用下划線(_)。

- 不能使用標點符號。

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


  無效的變量命名:

    ?var=123
    user*name=runoob


賦值變量:

1:
直接賦值

 name="lily"

  

2:

利用語句賦值 

for i in `ls /boot`;do echo $i ; done

#將/boot目錄下的文件名循環賦值給i並打印,可以用$(ls /boot)代替`ls /boot`

 

3:
間接賦值read -p

[root@test ~]# read -p "your name?" name1 name2
your name?666 888 
[root@test ~]# echo $name1 $name2
666 888

  

使用變量
  利用$var或者${var} 調用變量,加{}可以幫助解釋器識別變量的邊界。
  如$varlog會找varlog的變量,${var}log就沒問題。

 



只讀變量

var=abc
readonly abc
var=ab 
-bash: i: readonly variable   #報錯,只讀變量的值不能被改變和刪除

 


刪除變量

unset var  #變量前不加$符

  


***************************************
變量類型-字符串

1:
單引號''

  name='my name is $i'
  echo $name
  my name is $i

  eg:echo $name 會顯示 my name is $i,單引號內的變量不會被讀取

  單引號字符串的限制:

  單引號里的任何字符都會原樣輸出,單引號字符串中的變量是無效的;
  單引號字串中不能出現單引號(對單引號使用轉義符后也不行)。

 2: 

雙引號""
 

name="my name is $i"

 

  雙引號的優點:

  雙引號里可以有變量

  雙引號里可以出現轉義字符

3:

獲取字符段長度 ${#var}

  name=sunny
  echo ${#name}
  5 #返回字符段長度5

 

4:

提取字符串,從第n個字符開始提取m個字符${var:n:m}

  name="my name is sunny"
  echo ${name:11:5}      #從第11個字符起提取5個字符。
  sunny

  

 

 

**********************************************************************
變量類型-數組
1:
定義數組
數組元素的下標由0開始編號。獲取數組中的元素要利用下標,下標可以是整數或算術表達式,其值應大於或等於0。

array={v1 v2 v3 v4}
或者
array=(
v1
v2
v3
)

  

2:
讀取數組,注意下標由0開始編號
${數組名[下標]}

echo ${array[0]}
v1

 

 

獲取數組的所有元素

echo ${array[@]}

  

# 取得數組元素的個數

length=${#array_name[@]}

  

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

length=${#array_name[@]}

 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM