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
-----------------------------------------------------------