有这样一个脚本:变量CGI脚本
NAME = `echo "$QUERY_STRING" | sed -n 's/^.*post=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
RES = `psql -U user -d db -t -c "SELECT tabl FROM tablica WHERE name = '$NAME'"`
echo $RES
一切工作正常(这意味着GET请求是罚款)。但是数据库中的数据不会去。
问题是没有设置查询WHERE NAME
中的参数值,并且出现语法错误。
我已经在互联网上阅读了很多文章,但没有发现任何关于反引号内部的变量。
我该如何解决这个问题?
shell不会在'$ singlequotes'内部展开美元变量。解决这个问题的最好方法是使用here-document(它在$内部双引号和单引号内展开) – wildplasser
该代码在bash中不可能“正常工作”。请复制并粘贴您的真实代码 –