7.变量

  1. local
  2. default 默认值

local

1
2
3
4
5
function test() {
     a=1
}
echo $a
> 1
1
2
3
4
5
function test() {
   local a=1
}
echo $a
> 

default 默认值

1
2
3
4
5
6
7
8
# ${变量-默认值}
$ echo ${val1-nothing}
nothing
$ val1=hello; echo ${val1-nothing}
hello
$ unset val1; val2=word ; echo ${val1-${val2}}
word
$ ${1:default_}

其他赋值表达式,一部分表达式可以参考 Shell Parameter Expansion

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ str=                      # Null, but not unset
$ echo "${str-default}"     # Expands to value of $str, the empty string
    
$ echo "${str:-default}"    # Expands to "default"
default

$ str= ;echo "${str:=default}"; echo $str # str is substituted
default
default

# 有数值时候,使用默认值
$ str= ;echo "${str:+default}"; str=something ;echo "${str:+default}";

default

# str为空,就报错
$ str= ; a="${str:?default}"
bash: str: default