Sql in bash script (postgres)



我在bash脚本中有一个重命名base的命令。这是work, example

psql -U $User -t -A -q -c 'ALTER DATABASE "Old_Name"RENAME TO "New_Name"

但是如果我这样做-

O_Name ="Old_Name">

N_Name ="New_Name">

psql -U $User -t -A -q -c 'ALTER DATABASE "RENAME TO "$N_Name"

它不工作,我认为sql得到$O_Name不是Old_Name。如何将变量bash的值传递给sql?

单引号不允许展开环境变量。使用双引号代替(并转义嵌套的引号)。如,

psql -U $User -t -A -q -c "ALTER DATABASE "$O_Name" RENAME TO "$N_Name""

最新更新