Bash 赋值时使用\$
我知道还有其他方法可以实现下面代码表示的相同逻辑,但我特别想理解下面的代码 a和b函数都提供相同的结果。在(eval$1=\$result)中使用Bash 赋值时使用\$,bash,Bash,我知道还有其他方法可以实现下面代码表示的相同逻辑,但我特别想理解下面的代码 a和b函数都提供相同的结果。在(eval$1=\$result)中使用\$in有什么好处 #$1 varible to assign result function x { local result=12345 eval $1=$result } #$1 varible to assign result function y { local result=12345 eval $1=\$result
\$in有什么好处
#$1 varible to assign result
function x {
local result=12345
eval $1=$result
}
#$1 varible to assign result
function y {
local result=12345
eval $1=\$result
}
x a
echo $a # 12345
x b
echo $b # 12345
\
表示在为eval
创建参数时,结果的评估被延迟,并由eval
完成,而不是评估结果
前者(x
)用于:
后者(y
)的作用是:
对于大多数用例,没有区别。但是,如果字符串中有空格,则会注意到一个差异
例如
给出:
bash: 2: command not found
1 2 3
何处为
function y {
result='1 2 3'
eval $1=\$result
}
y b
echo $b
给出:
bash: 2: command not found
1 2 3
\
表示在为eval
创建参数时,结果的评估被延迟,并由eval
完成,而不是评估结果
前者(x
)用于:
后者(y
)的作用是:
对于大多数用例,没有区别。但是,如果字符串中有空格,则会注意到一个差异
例如
给出:
bash: 2: command not found
1 2 3
何处为
function y {
result='1 2 3'
eval $1=\$result
}
y b
echo $b
给出:
bash: 2: command not found
1 2 3