学习并记录shell脚本中参数替换的几种替换格式
格式一
-
${parameter-default} – 如果变量parameter没被声明, 那么就使用默认值.
1
2
3
4
5
6
7!/bin/bash
default="默认值"
echo ${parameter-${default}} #parameter 未声明
输出:默认值
parameter=
echo ${parameter-${default}} #parameter 已声明
输出: -
${parameter:-default} – 如果变量parameter没被设置, 那么就使用默认值.
1
2
3
4
5
6
7!/bin/bash
default="默认值"
echo ${parameter:-${default}} #parameter 未声明
输出:默认值
parameter=
echo ${parameter:-${default}} #parameter 已声明
输出:默认值
格式二
-
${parameter=default} – 如果变量parameter没声明, 那么就把它的值设为default.
1
2
3
4
5
6
7!/bin/bash
default="默认值"
echo ${parameter=${default}} #parameter 未声明
输出:默认值
parameter=
echo ${parameter=${default}} #parameter 已声明
输出: -
${parameter:=default} – 如果变量parameter没设置, 那么就把它的值设为default.
1
2
3
4
5
6
7!/bin/bash
default="默认值"
echo ${parameter:=${default}} #parameter 未声明
输出:默认值
parameter=
echo ${parameter:=${default}} #parameter 已声明
输出:默认值
格式三
-
${parameter+default} – 如果变量parameter被声明了, 那么就使用default, 否则就使用 null字符串.
1
2
3
4
5
6
7!/bin/bash
default="默认值"
echo ${parameter+${default}} #parameter 未声明
输出:
parameter=
echo ${parameter+${default}} #parameter 已声明
输出:默认值 -
${parameter:+default} – 如果变量parameter被设置了, 那么就使用default, 否则就使用 null字符串.
1
2
3
4
5
6
7
8
9
10!/bin/bash
default="默认值"
echo ${parameter:+${default}} #parameter 未声明
输出:
parameter=
echo ${parameter:+${default}} #parameter 已声明
输出:
parameter= '被赋值'
echo ${parameter:+${default}} #parameter 已赋值
输出:默认值
格式四
-
${parameter?default} – 如果parameter已经被声明, 那么就使用设置的值, 否则打印default 错误消息.
1
2
3
4
5
6
7
8
9
10!/bin/bash
default="默认值"
echo ${parameter?${default}} #parameter 未声明
输出:
parameter=
echo ${parameter?${default}} #parameter 已声明
输出:
parameter= '被赋值'
echo ${parameter?${default}} #parameter 已赋值
输出:默认值1
2
3
4
5
6
7!/bin/bash
parameter=
echo ${parameter?${default}} #parameter 已声明
输出:
parameter= '被赋值'
echo ${parameter?${default}} #parameter 已赋值
输出:被赋值
-
${parameter:?default} – 如果parameter已经被设置, 那么就使用设置的值, 否则打印 default错误消息.
1
2
3
4!/bin/bash
default="默认值"
echo ${parameter:?${default}} #parameter 未声明
输出:默认值 (报错)1
2
3
4!/bin/bash
parameter=
echo ${parameter:?${default}} #parameter 已声明
输出:默认值 (报错)1
2
3
4!/bin/bash
parameter= '被赋值'
echo ${parameter:?${default}} #parameter 已赋值
输出:被赋值