ayr*_*nna 3 scripting solaris eval
我有一个带有以下几行的小脚本
echo mom,dad |awk -F, '{print $1,$2}' | while read VAR1 VAR2
do
for i in VAR1 VAR2
do
eval X=\$$i
echo $X
done
done
Run Code Online (Sandbox Code Playgroud)
输出:
mom
dad
Run Code Online (Sandbox Code Playgroud)
这条线在做什么eval X=\$$i?
我理解其余的行,但我不理解这个 for 循环与 eval 的迭代。有人可以解释一下吗?我正在将 Solaris 5.10 与 Korn Shell 一起使用。
Jef*_*ler 12
eval 对行的其余部分执行额外级别的替换和处理。
在循环的第一次迭代中,i 设置为“VAR1”,并且减少了一级反斜杠转义,因此:
eval X=\$$i
Run Code Online (Sandbox Code Playgroud)
变成:
X=$VAR1
Run Code Online (Sandbox Code Playgroud)
其评估为:
X=mom
Run Code Online (Sandbox Code Playgroud)
(重复下一个循环,只有 $i 是 VAR2,而 $VAR2=dad)
| 归档时间: |
|
| 查看次数: |
416 次 |
| 最近记录: |