gpt4 book ai didi

Bash - 转义单引号

转载 作者:行者123 更新时间:2023-11-29 09:14:06 26 4
gpt4 key购买 nike

我有一个数据库脚本,它在给定特定 ID、姓氏和名字时搜索重复的 ID。这是它的主要内容:

PSQL="psql -p $PGPORT -h $DBHOST -d $DB -tAc "

DUP_ID=$($PSQL "SELECT id FROM inmate WHERE id NOT SIMILAR TO '(0*)${1}' AND lastname ILIKE '${_LNAME}' AND firstname ILIKE '${_FNAME}' LIMIT 1")

效果很好,除非姓氏或名字中有撇号,例如“O'Neil”。我试图用\' 转义任何 ' 实例,但尚未成功。我花了一整天的时间搜索论坛,并自己尝试了不同的变体,但它仍然不会在每个 '. 前面添加\。

这是我到目前为止得到的:

local _LNAME=`echo "${2}" | sed "s/'/\\\'/g"`
local _FNAME=`echo "${3}" | sed "s/'/\\\'/g"`
echo -e $_LNAME
echo -e $_FNAME

# Output

O'Neil
Robert

一如既往,提前致谢!

最佳答案

QUERY=(
SELECT id FROM inmate WHERE
id NOT SIMILAR TO "'(0*)$1'" AND
lastname ILIKE "'$_LNAME'" AND
firstname ILIKE "'$_FNAME'" LIMIT 1
)
psql -p $PGPORT -h $DBHOST -d $DB -tAc "${QUERY[*]}"

关于Bash - 转义单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23377278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com