下边shell语言中eval,又加单引号,又加双引号,有什么含义,单双引号有什么区别?

eval"$dbvar"'_answer_'"$id"'="$value"'eval'answers="$'"$dbvar"'_answers"'eval"$dbvar"... eval "$dbvar"'_answer_'"$id"'="$value"'
eval 'answers="$'"$dbvar"'_answers"'
eval "$dbvar"'_answer_'"$id"'="$value"'
展开
 我来答
叉烧帝
2011-01-09 · TA获得超过620个赞
知道小有建树答主
回答量:64
采纳率:100%
帮助的人:75.7万
展开全部
命令前加eval是使shell在执行命令行之前扫描它两次(先取$里的变量值,再赋值)。

单引号和双引号都能关闭shell对特殊字符的处理。不同的是,双引号没有单引号严格,单引号关闭所有有特殊作用的字符,而双引号只要求shell忽略大多数,具体的说,就是①美元符号②反引号③反斜杠,这3种特殊字符不被忽略。 不忽略美元符号意味着shell在双引号内部也进行变量名替换。

双引号就是防止将变量名后面的字符串也当作变量名的一部分,你这命令里的单引号确实没必要加(但=前的双引号必须得加),我都试过了,加了也不影响,应该起个强调作用,个人敲命令的习惯。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式