Linux shell 参数展开

来源:互联网 发布:大数据处理过程知乎 编辑:程序博客网 时间:2024/05/05 02:36

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





0 0
原创粉丝点击