有這樣一個腳本:變量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中不可能「正常工作」。請複製並粘貼您的真實代碼 –