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
Wenn ich laufe, dass es alsFlucht doppelte Anführungszeichen in einem einzigen Zitat
kommt„index“: „“ $ x „“,
Ich brauche es als „Index“ zu kommen : "$ x", Ich kann das doppelte Zitat, das es produziert, nicht umgehen und wenn ich versuche, die ganze Sache mit einem einfachen Zitat zu umgehen, denkt das Skript, dass es aufgehört hat.
Ich habe versucht, alles .. Alles, was würde geschätzt
Vielen Dank!
warum nicht eines der Anführungszeichen in jedem Paar entfernen? '..." index: ":" $ x '"' ...' – karakfa
Was meinst du? Wie entfernen Sie die Anführungszeichen? Wie gesagt, würde das Skript denken, dass das Skript beendet ist, wo die Variable ist. –
Nein, Sie sind in einfachen Anführungszeichen, double quote ist nur ein beliebiger anderer char in diesem Kontext. – karakfa