15 liunx shell基础 变量测试与内容替换; x=${y-};x=${y:-}; x=${y+};x=${y:+};x=${y=};x=${y:=};x=${y?};x=${y:?}
作者:互联网
shell基础 变量测试;内容替换
变量测试与内容替换
☆☆☆☆☆:很重要,工具表格,不需要记忆。需要的时候,来查询就好了。
变量置换方法 | 变量y没有设置 | 变量y为空值 | 变量y设置值 |
---|---|---|---|
x=${y-新值} | x=新值 | x为空 | x=$y |
x=${y:-新值} | x=新值 | x=新值 | x=$y |
x=${y+新值} | x为空 | x=新值 | x=新值 |
x=${y:+新值} | x为空 | x为空 | x=新值 |
x=${y=新值} | x=新值;y=新值 | x为空;y值不变 | x=$y;y值不变 |
x=${y:=新值} | x=新值;y=新值 | x=新值;y=新值 | x=$y;y值不变 |
x=${y?新值} | 新值 输出到显示器上 | x为空 | x=$y |
x=${y:?新值} | 新值 输出到显示器上 | 新值 输出到显示器上 | x=$y |
第1行示例:
[userwin@MiWiFi-R3L-srv ~]$ unset x
[userwin@MiWiFi-R3L-srv ~]$ unset y
[userwin@MiWiFi-R3L-srv ~]$ x=${y-newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
newValue
[userwin@MiWiFi-R3L-srv ~]$ y=""
[userwin@MiWiFi-R3L-srv ~]$ x=${y-newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x # 输出"" 空
[userwin@MiWiFi-R3L-srv ~]$
[userwin@MiWiFi-R3L-srv ~]$ y=oldValue
[userwin@MiWiFi-R3L-srv ~]$ x=${y-newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
oldValue
第2行示例:
[userwin@MiWiFi-R3L-srv ~]$ unset x
[userwin@MiWiFi-R3L-srv ~]$ unset y
[userwin@MiWiFi-R3L-srv ~]$ x=${y:-newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
newValue
[userwin@MiWiFi-R3L-srv ~]$ y=""
[userwin@MiWiFi-R3L-srv ~]$ x=${y:-newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
newValue
[userwin@MiWiFi-R3L-srv ~]$ y=oldValue
[userwin@MiWiFi-R3L-srv ~]$ x=${y:-newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
oldValue
第3行示例:
[userwin@MiWiFi-R3L-srv ~]$ unset x
[userwin@MiWiFi-R3L-srv ~]$ unset y
[userwin@MiWiFi-R3L-srv ~]$ x=${y+newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
[userwin@MiWiFi-R3L-srv ~]$ y=""
[userwin@MiWiFi-R3L-srv ~]$ x=${y+newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
newValue
[userwin@MiWiFi-R3L-srv ~]$ y=oldValue
[userwin@MiWiFi-R3L-srv ~]$ x=${y+newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
newValue
第4行示例:
[userwin@MiWiFi-R3L-srv ~]$ unset x
[userwin@MiWiFi-R3L-srv ~]$ unset y
[userwin@MiWiFi-R3L-srv ~]$ x=${y:+newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
[userwin@MiWiFi-R3L-srv ~]$ y=""
[userwin@MiWiFi-R3L-srv ~]$ x=${y:+newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
[userwin@MiWiFi-R3L-srv ~]$ y=oldValue
[userwin@MiWiFi-R3L-srv ~]$ x=${y:+newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
newValue
第5行示例:
[userwin@MiWiFi-R3L-srv ~]$ unset x
[userwin@MiWiFi-R3L-srv ~]$ unset y
[userwin@MiWiFi-R3L-srv ~]$ x=${y=newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
newValue
[userwin@MiWiFi-R3L-srv ~]$ echo $y
newValue
[userwin@MiWiFi-R3L-srv ~]$ y=""
[userwin@MiWiFi-R3L-srv ~]$ x=${y=newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
[userwin@MiWiFi-R3L-srv ~]$ echo $y
[userwin@MiWiFi-R3L-srv ~]$ y=oldValue
[userwin@MiWiFi-R3L-srv ~]$ x=${y=newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
oldValue
[userwin@MiWiFi-R3L-srv ~]$ echo $y
oldValue
第6行示例:
[userwin@MiWiFi-R3L-srv ~]$
[userwin@MiWiFi-R3L-srv ~]$ unset x
[userwin@MiWiFi-R3L-srv ~]$ unset y
[userwin@MiWiFi-R3L-srv ~]$ x=${y:=newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
newValue
[userwin@MiWiFi-R3L-srv ~]$ echo $y
newValue
[userwin@MiWiFi-R3L-srv ~]$ y=""
[userwin@MiWiFi-R3L-srv ~]$ x=${y:=newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
newValue
[userwin@MiWiFi-R3L-srv ~]$ echo $y
newValue
[userwin@MiWiFi-R3L-srv ~]$ y=oldValue
[userwin@MiWiFi-R3L-srv ~]$ x=${y:=newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
oldValue
[userwin@MiWiFi-R3L-srv ~]$ echo $y
oldValue
第7行示例:
[userwin@MiWiFi-R3L-srv ~]$ unset x
[userwin@MiWiFi-R3L-srv ~]$ unset y
[userwin@MiWiFi-R3L-srv ~]$ x=${y?newValue}
-bash: y: newValue
[userwin@MiWiFi-R3L-srv ~]$ y=""
[userwin@MiWiFi-R3L-srv ~]$ x=${y?newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
[userwin@MiWiFi-R3L-srv ~]$ y=oldValue
[userwin@MiWiFi-R3L-srv ~]$ x=${y?newValue}
[userwin@MiWiFi-R3L-srv ~]$ echo $x
oldValue
第8行示例:```bash
[userwin@MiWiFi-R3L-srv ~]$
[userwin@MiWiFi-R3L-srv ~]$ unset x
[userwin@MiWiFi-R3L-srv ~]$ unset y
[userwin@MiWiFi-R3L-srv ~]$ x=
y
:
?
n
e
w
V
a
l
u
e
−
b
a
s
h
:
y
:
n
e
w
V
a
l
u
e
[
u
s
e
r
w
i
n
@
M
i
W
i
F
i
−
R
3
L
−
s
r
v
]
{y:?newValue} -bash: y: newValue [userwin@MiWiFi-R3L-srv ~]
y:?newValue−bash:y:newValue[userwin@MiWiFi−R3L−srv ] y=""
[userwin@MiWiFi-R3L-srv ~]$ x=
y
:
?
n
e
w
V
a
l
u
e
−
b
a
s
h
:
y
:
n
e
w
V
a
l
u
e
[
u
s
e
r
w
i
n
@
M
i
W
i
F
i
−
R
3
L
−
s
r
v
]
{y:?newValue} -bash: y: newValue [userwin@MiWiFi-R3L-srv ~]
y:?newValue−bash:y:newValue[userwin@MiWiFi−R3L−srv ] y=oldvalue
[userwin@MiWiFi-R3L-srv ~]$ x=
y
:
?
n
e
w
V
a
l
u
e
[
u
s
e
r
w
i
n
@
M
i
W
i
F
i
−
R
3
L
−
s
r
v
]
{y:?newValue} [userwin@MiWiFi-R3L-srv ~]
y:?newValue[userwin@MiWiFi−R3L−srv ] echo $x
oldvalue
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=44432daac6294bd9b61bab8f7f417c66.png?,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARW5naW5lZXJGb3JTb3Vs,size_13,color_FFFFFF,t_70,g_se,x_16)
---
==倘若此文对你有帮助,点赞,评论,转发。谢谢!==
==我醉欲眠卿且去,明朝有意抱琴来。==
标签:R3L,shell,15,userwin,echo,srv,liunx,MiWiFi,newValue 来源: https://blog.csdn.net/lingyiwin/article/details/122117974