Sql 在 bash 脚本中 (postgres)
Sql in bash script (postgres)
我在 bash 脚本中有一个重命名基地的命令。
成功了,例子
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 "$O_Name" 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\""
我在 bash 脚本中有一个重命名基地的命令。 成功了,例子
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 "$O_Name" 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\""