【发布时间】:2015-06-25 23:57:22
【问题描述】:
有这样一个脚本:
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(在双引号和单引号内扩展 $)
-
该代码不可能在 bash 中“正常工作”。请复制并粘贴您的真实代码
标签: linux bash postgresql shell cgi