字符串拼接
value1=hello
value2=${value1}World
echo value2
执行结果:
helloWorld
得到字符串长度
a='abc'
echo ${#a}
执行结果:
3
字符串截取
a='abc'
echo ${a:1}
执行结果
bc
if语句中字符串的判断
if语句的两种格式[]
和[[]]
对字符串判断的效果不同。[[]]
支持字符串模式匹配,而[]
不支持。下面是几个比较字符串是否相等的例子:
a='abc'
if [[ $a == a* ]]; then
echo "equal!"
fi
执行结果为:
equal!
而对于单个中括号:
a='abc'
if [ $a == a* ]; then
echo "equal!"
fi
执行结果为空,可见单个中括号不支持字符串的模式匹配。
此外,对于
a='abc'
if [[ $a == "a*" ]]; then
echo "equal!"
fi
执行结果也为空,也就是说用双引号引出的字符串不会被视为pattern。
在脚本中写[[]]
的时候需要用bash xxx.sh
来运行脚本,shell脚本并不能认出这种语法。