Shell处理字符串常用技巧终结篇

Shell处理字符串常用技巧之判值、赋值
在Shell编程中,经常要处理一些字符串变量 。
下面给大家整理Shell处理字符串常用技巧之判值、赋值 。
请参考:
Shell处理字符串常用技巧之分割、替换字符串
Shell处理字符串常用技巧之截取子串
(1)、${VALUE:-word}:
当变量未定义或者值为空时,返回值为WORD的内容 。
否则返回变量的值 。
(2)、${VALUE:=WORD}:
当变量未定义或者值为空时,返回WORD的值的同时并将WORD赋值给VALUE 。
否则返回变量的值 。
(3)、${VALUE:+WORD}:
当变量已赋值时,其值才用WORD替换 。
否则不进行任何替换 。
(4)、${VALUE:?MESSAGE}:
当变量已赋值时,正常替换 。
否则将消息MESSAGE送到标准错误输出 。
若此替换出现在SHELL程序中,那么该程序将终止运行 。
补充:
WORD可以为一个字符串,也可以为一个变量 。
当为变量时,需要用"$"引用该变量 。
案例:
(1) ${VALUE:-WORD}:
[odysee@kingdom ~]$ name=mynameisodysee
[odysee@kingdom ~]$ echo ${name:-"name is empty or undefined"}
mynameisodysee
[odysee@kingdom ~]$ name=
[odysee@kingdom ~]$ echo ${name:-"name is empty or undefined"}
name is empty or undefined
[odysee@kingdom ~]$ echo ${names:-"name is empty or undefined"}
name is empty or undefined

Shell处理字符串常用技巧终结篇

文章插图
 
(2) ${VALUE:=WORD}:
[odysee@kingdom ~]$ name=
[odysee@kingdom ~]$ echo ${name:="odysee"}
odysee
[odysee@kingdom ~]$ echo ${name}
odysee
Shell处理字符串常用技巧终结篇

文章插图
 
(3) ${VALUE:+WORD}:
[odysee@kingdom ~]$ name=odysee
[odysee@kingdom ~]$ echo ${name:+"odysee^s dad"}
odysee^s dad
Shell处理字符串常用技巧终结篇

文章插图
 
(4)${VALUE:?MESSAGE}:
[odysee@kingdom ~]$ name=
[odysee@kingdom ~]$ echo ${names:?"I am odysee^s dad"}
-bash: names: I am odysee^s dad
Shell处理字符串常用技巧终结篇

文章插图
 
补充:
使用$引用变量
[odysee@kingdom ~]$ name=
[odysee@kingdom ~]$ sname=odysee
[odysee@kingdom ~]$ echo ${name:-$sname}
odysee
Shell处理字符串常用技巧终结篇

文章插图
 
总结:
关于以上的字符串操作,有点拗脑,不太容易记忆 。
如果有什么好的记忆方式,望大家不吝赐教 。
欢迎大家给予宝贵的意见或者建议 。
欢迎大家补充或者共享一些其他的方法 。
感谢支持 。

【Shell处理字符串常用技巧终结篇】


    推荐阅读