下边shell语言中eval,又加单引号,又加双引号,有什么含义,单双引号有什么区别?eval "$dbvar"'_answer_'"$id"'="$value"'eval 'answers="$'"$dbvar"'_answers"'eval "$dbvar"'_answer_'"$id"'="$value"'
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/21 07:14:04
![下边shell语言中eval,又加单引号,又加双引号,有什么含义,单双引号有什么区别?eval](/uploads/image/z/5082986-2-6.jpg?t=%E4%B8%8B%E8%BE%B9shell%E8%AF%AD%E8%A8%80%E4%B8%ADeval%2C%E5%8F%88%E5%8A%A0%E5%8D%95%E5%BC%95%E5%8F%B7%2C%E5%8F%88%E5%8A%A0%E5%8F%8C%E5%BC%95%E5%8F%B7%2C%E6%9C%89%E4%BB%80%E4%B9%88%E5%90%AB%E4%B9%89%2C%E5%8D%95%E5%8F%8C%E5%BC%95%E5%8F%B7%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%3Feval+%22%24dbvar%22%27_answer_%27%22%24id%22%27%3D%22%24value%22%27eval+%27answers%3D%22%24%27%22%24dbvar%22%27_answers%22%27eval+%22%24dbvar%22%27_answer_%27%22%24id%22%27%3D%22%24value%22%27)
下边shell语言中eval,又加单引号,又加双引号,有什么含义,单双引号有什么区别?eval "$dbvar"'_answer_'"$id"'="$value"'eval 'answers="$'"$dbvar"'_answers"'eval "$dbvar"'_answer_'"$id"'="$value"'
下边shell语言中eval,又加单引号,又加双引号,有什么含义,单双引号有什么区别?
eval "$dbvar"'_answer_'"$id"'="$value"'
eval 'answers="$'"$dbvar"'_answers"'
eval "$dbvar"'_answer_'"$id"'="$value"'
下边shell语言中eval,又加单引号,又加双引号,有什么含义,单双引号有什么区别?eval "$dbvar"'_answer_'"$id"'="$value"'eval 'answers="$'"$dbvar"'_answers"'eval "$dbvar"'_answer_'"$id"'="$value"'
命令前加eval是使shell在执行命令行之前扫描它两次(先取$里的变量值,再赋值).
单引号和双引号都能关闭shell对特殊字符的处理.不同的是,双引号没有单引号严格,单引号关闭所有有特殊作用的字符,而双引号只要求shell忽略大多数,具体的说,就是①美元符号②反引号③反斜杠,这3种特殊字符不被忽略.不忽略美元符号意味着shell在双引号内部也进行变量名替换.
双引号就是防止将变量名后面的字符串也当作变量名的一部分,你这命令里的单引号确实没必要加(但=前的双引号必须得加),我都试过了,加了也不影响,应该起个强调作用,个人敲命令的习惯.