我有以下要从 bash 脚本执行的 PostgreSQL 数据库的 SELECT 语句:
psql -U chh1 -d crewdb -c "SELECT SETVAL('date_link_date_linkid_seq', (SELECT MAX(date_linkid) FROM date_link), true);"
这将是脚本中执行命令所需的语法。我想用从 STDIN 读取的变量替换 date_link。为此,我编写了以下 bash 脚本:
1 #!/bin/bash
2
3 echo "Please enter the table name: "
4 read -r var
5
6
7 echo 'psql -U chh1 -d crewdb -c "SELECT SETVAL('"${var}"_"${var}id_seq"', (SELECT MAX("${var}id") FROM "$var"), true);"'
当我运行它时,SELECT MAX(.. 部分不起作用,并且我得到以下输出:
psql -U chh1 -d crewdb -c "SELECT SETVAL(date_link_date_linkid_seq, (SELECT MAX("${var}id") FROM "$var"), true);"
你能帮忙吗?