gpt4 book ai didi

linux - 在单引号内转义双引号

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:07 27 4
gpt4 key购买 nike

for x in $(cat raw_tables.txt)
do
echo '{
"type" : "jdbc",
"jdbc" : {
"url" : "jdbc:mysql://localhost:3306/test",
"user" : "root",
"password" : "<pass>",
"sql" : "select * from "'$x'"",
"elasticsearch" {
"cluster" : "Search",
"host": "<ip>",
"port": 9300
},
"index" : ""'$x'"",
"type": ""'$x'""
}
}' | java \
-cp "/etc/elasticsearch/elasticsearch-jdbc-2.3.3.1/lib/*" \
-Dlog4j.configurationFile=/etc/elasticsearch/elasticsearch-jdbc-2.3.3.1/bin/log4j2.xml \
org.xbib.tools.Runner \
org.xbib.tools.JDBCImporter


cat raw_tables.txt
table1
table2
table3

当我运行它时,它显示为

"索引":""$x"",

我需要它以“索引”的形式出现:“$x”,我无法绕过它生成的双引号,如果我尝试用单引号转义整个内容,脚本会认为它已停止。

我已经尝试了一切.. 任何东西都会受到赞赏

谢谢!

最佳答案

使用此处文档,这样您就不必关心引用(在这种情况下,因为文档不需要包含任何反引号或美元符号):

while read x; do
java ... lots of options \
more options for java \
and more options for java <<END_DOC
{
"type" : "jdbc",
"jdbc" : {
"url" : "jdbc:mysql://localhost:3306/test",
"user" : "root",
"password" : "<pass>",
"sql" : "select * from $x",
"elasticsearch" {
"cluster" : "Search",
"host": "<ip>",
"port": 9300
},
"index" : "$x",
"type": "$x"
}
}
END_DOC
done <raw_tables.txt

结束标记(在本例中为 END_DOC)需要向左对齐,没有缩进。

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

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