我有一个 bash shell 脚本。我有一个 psql 复制命令,它从数据库中捕获了一些数据行。数据库中的数据是我将在 bash 脚本中使用的实际 sql 语句。我将语句放在数据库中,因为它们的长度不同,并且我希望能够动态调用某些语句。
1)我不确定在复制语句中使用什么分隔符。我不能使用逗号或管道,因为它们在来自数据库的数据中。我尝试了几个随机字符,因为它们不在我的数据库中,但副本很合适,只需要一个 ascii 字符。
此外,为了使事情复杂化,我需要为每一行获取 query_name 和 query_string。
这是我目前拥有的。我通过副本获得了所有数据,但现在我只想将数据推送到一个数组中,以便稍后可以循环它:
q="copy (select query_name,query_string from query where active=1)
to stdout delimiter ','"
statements=$(psql -d ${db_name} -c "${q}")
statements_split=(`echo ${statements//,/ }`)
echo ${statements_split[0]};