数据库 table 是否存在,使用 bash

Does a database table exist, using bash

如何在 bash 脚本中判断 ingres 数据库是否包含特定的 table?

我想我想要这样的东西:

sql $db << ENDSQL | grep 'TRUE' > /dev/null
select 'TRUE' from iitables where table_name like '$tablename%'
\p\g
ENDSQL
result=$?

但这总是返回 1(未找到)。文字 'mytable%' 有效,所以我认为这是我引用(或缺少)的内容。

\p 打印我的 SQL 语句,并且 $tablename 被扩展,即使它在单引号内,所以不是那样。

感谢任何建议。

这里的文档语法很挑剔,试试这里的语句(同样凌乱):

sql $db <<< "select 'TRUE' from iitables where table_name like '$tablename%'
\p\g" | grep 'TRUE' > /dev/null
result=$?

注意 <<< 和双引号的位置。