reminder="Time to go to the dentist ! " 【将值存储在reminder中】
sleep 120 【等待两分钟】
echo $reminder 【显示信息】
替换运算符
运算符 替换
${varname:-word} 如果varname存在且非null,返回其值;否则,返回word。
用途:如果变量未定义,则返回默认值。
范例:如果count未定义,则${count:-0}的值为0。
${varname:=word} 如果varname存在且不是null,则返回它的值;否则,设置它为word,并返回其值。
用途:如果变量未定义,则设置变量为默认值。
范例:如果count未被定义,则${count:=0}设置count为。
${varname:?message} 如果varname存在且非null,则返回它的值;否则,显示varname:message,并退出当前的命令或脚本。
省略message会出现默认信息parameter null or not set。注意,在交互式Shell下不需要退出
(在不同的Shell间会有不同的行为,用户需自行注意)。
用途:为了捕捉由于变量未定义所导致的错误。
范例:${count:?"undefined!"}将显示count:undefined!,且如果count未定义,则退出。
${varname:+word} 如果varname存在且非null,则返回word;否则,返回null。
用途:为测试变量的存在。
范例:如果count已定义,则${count:+1}返回1(也就是"真")
模式匹配运算符
运算符 替换
${variable#pattern} 如果模式匹配于变量值的开头处,则删除匹配的最短部分,并返回剩下的部分。
例:${path#/*/} 结果:tolstoy/mem/long.file.name
例:${variable##pattern} 如果模式匹配于变量值的开头处,则删除匹配的最长部分,并返回剩下的部分。
例:${path##/*/} 结果:long.file.name
例:${varible%pattern} 如果模式匹配于变量值的结尾处,则删除匹配的最短部分,并返回剩下的部分。
例:${path%.*} 结果:/home/tolstoy/mem/long.file
例:${variable%%pattern} 如果模式匹配于变量值的结尾处,则删除匹配的最长部分,并返回剩余部分。
例:${path%%.*} 结果:/home/tolstoy/mem/long