1、變數中字元的長度:${#VARNAME}
#A='hello world'
#echo ${#A} --顯示定義變數A的長度,輸出結果為11
#11
2、變數賦值等:
${parameter:-word}:如果parameter為空白或未定義,則變數展開為“word”;否則,展開為parameter的值;
${parameter:+word}:如果parameter為空白或未定義,不做任何操作;否則,則展開為“word”值;
${parameter:=word}:如果parameter為空白或未定義,則變數展開為“word”,並將展開後的值賦值給parameter;
${parameter:offset}:去掉定義的位移數
${parameter:offset:length}:取子串,從offset處的後一個字元開始,取lenth長的子串
--------------------------------------------------------
最常使用的是第一種,比如:
${parameter:-word}
#A=3
#echo ${A:-30} ---表示變數A不空時,運算式就使用變數自身的值
#3
#unset A
#echo ${A:-30} ---表示變數A為空白時,運算式就會使用自身的值
#30
#A=${A:-30} ---表示變數A為空白時,就會使用自身的值賦給變數A
#echo $A ---表示變數A不空時,就會使用變數A的值再次賦給變數A
#30
${parameter:+word}
#A=3
#echo ${A:+30} ---表示變數A不空時,就會使用word的值
#3
#unset A
#echo ${A:+30} ---表示變數A為空白時,其值為空白
#為空白
${parameter:=word}
#unset A
#echo ${A:=30} --表示變數A為空白時,不僅把這個運算式展開為這個字串,而且把字串值賦給A
#30
${parameter:offset}
#A='hello world' ---定義一個變數
#echo ${A:2} ---數字2表示變數A中的字串自左向右位移2個,顯示從位移後的所有內容
#llo world
${parameter:offset:length}
#echo ${A:2:3} ---數字2表示變數A中的字串自左向右位移2個,數字3表示從位移位置之後要取3個字元
#llo
-----------------------------------------------------------