我正在写一个bash单线程。 此作品(打印日期到控制台或试图执行的话):Bash:转义变量
-bash-4.1$ DATE=`$(date --date="2 days ago" +%F)` echo "${DATE}"
但这:
`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);"
给出:
ERROR: invalid input syntax for type timestamp: ""
LINE 1: ... table where started >= '' ...
这意味着${DATE}
是空在那里。 我应该修改什么才能使其工作?
w ^你是在混合'$(...)',然后在同一个命令中使用旧的back-ticks吗? – anubhava
是的,但至少它知道名字,在第一个例子中显然不是空字符串。 – mnowotka
你的第一行会产生'bash:2016-08-23:command not found'错误。它应该是:'DATE = $(date --date =“2 days ago”'+%F')&& echo“$ DATE”' – anubhava