作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 04:33:41
下边shell语言中eval,又加单引号,又加双引号,有什么含义,单双引号有什么区别?
eval "$dbvar"'_answer_'"$id"'="$value"'
eval 'answers="$'"$dbvar"'_answers"'
eval "$dbvar"'_answer_'"$id"'="$value"'
命令前加eval是使shell在执行命令行之前扫描它两次(先取$里的变量值,再赋值).
单引号和双引号都能关闭shell对特殊字符的处理.不同的是,双引号没有单引号严格,单引号关闭所有有特殊作用的字符,而双引号只要求shell忽略大多数,具体的说,就是①美元符号②反引号③反斜杠,这3种特殊字符不被忽略.不忽略美元符号意味着shell在双引号内部也进行变量名替换.
双引号就是防止将变量名后面的字符串也当作变量名的一部分,你这命令里的单引号确实没必要加(但=前的双引号必须得加),我都试过了,加了也不影响,应该起个强调作用,个人敲命令的习惯.