Ich schreibe einen Bash One Liner. Dies funktioniert (Drucke auf der Konsole stammen oder versucht, sie auszuführen):Bash: entweichen Variablen
-bash-4.1$ DATE=`$(date --date="2 days ago" +%F)` echo "${DATE}"
Aber:
`DATE=$(date --date="2 days ago" +%F)` psql -d some_db -c "select row from table where started >= '${DATE}' and started < ('${DATE}'::date + '1 day'::interval);"
Gibt:
ERROR: invalid input syntax for type timestamp: ""
LINE 1: ... table where started >= '' ...
was bedeutet, dass ${DATE}
es leer ist. Was muss ich ändern, damit es funktioniert?
W hy mixst du '$ (...)' und dann alte Back-Ticks in demselben Befehl? – anubhava
Ja, aber zumindest weiß es über den Namen, es ist eindeutig keine leere Zeichenfolge im ersten Beispiel. – mnowotka
Ihre erste Zeile wird 'bash: 2016-08-23: Befehl nicht gefunden' Fehler. Es sollte sein: 'DATE = $ (date - date =" vor 2 Tagen "'+% F') && echo" $ DATE "' – anubhava