malongshuai / malongshuai.github.io

2 stars 0 forks source link

Shell脚本深入教程:Bash解析命令行和eval命令★★★ | 骏马金龙 #127

Open malongshuai opened 4 years ago

malongshuai commented 4 years ago

https://www.junmajinlong.com/shell/script_course/shell_cmdline_parse_eval/

Shell脚本深入教程:Bash解析命令行和eval命令★★★

wangnan789 commented 3 years ago

最后那部分代码"a=name" 改为“a=nama“ ,命令才能成功执行。另问”eval echo \$$a“为何要个反斜杠

malongshuai commented 3 years ago

@cws999 最后那部分代码"a=name" 改为“a=nama“ ,命令才能成功执行。另问”eval echo \$$a“为何要个反斜杠

eval echo \$$a,如果没有反斜线,eval echo $$a解析命令行时会将$$解析为变量(即bash PID),相当于$$变量的值后面加个字符a,第二轮解析命令行得到的是echo PID值a。加反斜线,第一个$被保护,不被shell解析,于是解析的是$a,解析完后得到的是eval echo $name,再解析一遍,得到的就是期待的结果。

minibright commented 2 years ago

太棒了,解决我一直以来的疑惑,赞👍🏻