来自/lib/lsb/init-functions (可能这个文件是特定于debian的,但对这个问题并不重要):
pidofproc () {
local pidfile line i pids= status specified pid
pidfile=
specified=你说的是什么
local a和
local a=发布于 2010-09-17 18:22:56
这两种类型都会从作用域中删除变量的任何外部版本。=为该变量分配一个空值,而纯形式则不设置该变量。
例如:
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是不同的。
https://stackoverflow.com/questions/3734051
复制相似问题