(也许这个文件是特定于debian的,但对于这个问题并不重要):
pidofproc () {
local pidfile line i pids= status specified pid
pidfile=
specified=
说
之间的区别local a
和
local a=
答案 0 :(得分:1)
两种类型都从范围中删除任何外部版本的变量。
=
为变量赋值空值,而裸表单保留变量unset。
例如:
A=30
B=30
function foo()
{
local A B=
echo A - $A
echo B - $B
echo A :- ${A:-minusA}
echo B :- ${B:-minusB}
echo A :+ ${A:+plusA}
echo B :+ ${B:+plusB}
echo A hash ${#A}
echo B hash ${#B}
echo A - ${A-minusA}
echo B - ${B-minusB}
echo A + ${A+plusA}
echo B + ${B+plusB}
## Modifies variable
echo A := ${A:=eqA}
echo B := ${B:=eqB}
echo A - $A
echo B - $B
}
foo
输出:
A -
B -
A :- minusA
B :- minusB
A :+
B :+
A hash 0
B hash 0
A - minusA
B -
A +
B + plusB
A := eqA
B := eqB
A - eqA
B - eqB
您可以看到以下部分:
echo A - ${A-minusA}
echo B - ${B-minusB}
echo A + ${A+plusA}
echo B + ${B+plusB}
与A和B不同。