提问人:Tony 提问时间:2/27/2019 最后编辑:Tony 更新时间:2/27/2019 访问量:44
bash/linux 中的引用问题
Quoting issues in bash/linux
问:
我有一个 bash 脚本,我正在将一些 SQL select 语句放入其中,但我在让它们正确读出时遇到了可怕的时间。单引号、双引号等,如果您想要整个 sql 语句,似乎没有快速使用这个。
样本:
declare -a array=(
'1=Unprocessed===SELECT count(*) FROM db.table WHERE thing1='unknown' and thing2='unknown' and thing3='unknown''
)
我已经厌倦了逃避单引号——我已经厌倦了整个事情的双引号。我尝试过单引号和双引号等
答:
1赞
Ed Morton
2/27/2019
#1
idk 应该是什么,但这似乎是您所要求的:1=Unprocessed===
$ declare -a array=(
'1=Unprocessed===SELECT count(*) FROM db.table WHERE thing1='\''unknown'\'' and thing2='\''unknown'\'' and thing3='\''unknown'\'''
)
$ echo "${array[0]}"
1=Unprocessed===SELECT count(*) FROM db.table WHERE thing1='unknown' and thing2='unknown' and thing3='unknown'
评论
1=Unprocessed===
"SELECT count(*) FROM db.table WHERE thing1='unknown' and thing2='unknown' and thing3='unknown' "