Ich habe eine SQL-Abfrage, die enthält:Warum ersetzt sed meine Anführungszeichen?
join (&max_dt1) t3
ich &max_dt1
so ersetzen möchten:
MAX_DT1="'2017-11-03'"
REPLACE="sed -i 's/&max_dt1/select ($MAX_DT1) as dt/g' $FINAL_QUERY"
cat $FINAL_QUERY | eval $REPLACE
Ergebnis:
join (select (2017-05-09) as dt) t3
Warum ist es die Anführungszeichen meiner Variable löschen MAX_DT1
?
Mein richtiger Code:
MAX_DT1="'$MAX_DT1'"
echo $MAX_DT1
REPLACE="sed -i 's/&max_dt1/select ($MAX_DT1) as dt/g' $FINAL_QUERY"
echo sed -i "s/&max_dt1/select ($MAX_DT1) as dt/g $FINAL_QUERY
cat $FINAL_QUERY | eval $REPLACE
MAX_DT1 allererst enthält nur: 2017-11-03
Was Anführungszeichen? echo $ MAX_DT1 und überprüfe die Ausgabe. – dood
Oh, oder ist die Frage, warum es '2017-05-09' statt' '2017-05-09'' ist? –
sollte es nicht '2017-11-03' sein, warum ändert sich das Datum? – karakfa