Bash 如何将dbaccess计数输出到unix变量?

Bash 如何将dbaccess计数输出到unix变量?,bash,unix,informix,Bash,Unix,Informix,我得到一个informix数据库表的计数。我需要将该计数值存储到脚本中的unix变量中。我尝试了以下两种方法 nwn@nwntt$echo "select count(*) from table1" | dbaccess testdb > $var -bash: $var: ambiguous redirect 这是我的剧本 var1=0 $INFORMIXDIR/bin/dbaccess <<SQLSTMT database testdb;

我得到一个informix数据库表的计数。我需要将该计数值存储到脚本中的unix变量中。我尝试了以下两种方法

nwn@nwntt$echo "select count(*) from table1" | dbaccess testdb > $var
-bash: $var: ambiguous redirect
这是我的剧本

var1=0


$INFORMIXDIR/bin/dbaccess <<SQLSTMT
        database testdb;

        select count(*) from table1;
SQLSTMT 


echo var1;
var1=0

$INFORMIXDIR/bin/dbaccess
var=$(echo“select count(*)from table1”| dbaccess testdb)
?在检查链接后肯定是重复的。使用
variable=$(…)
的Bash表示法是答案的关键部分。然而,DB访问是一个嘈杂的工具。它将进度信息写入标准错误,并将列标题(和空行)添加到输出中。与您所追求的内容大致相当的是:
var=$(echo'output to”/dev/stdout“不带标题,从表1中选择count(*)dbaccess testdb-2>/dev/null)
。它包括两个空行和变量中所需的数字,
var
;如果使用未加引号的,它将丢失空白(
echo$var
而不是通常推荐的
echo“$var”
)。使用DB Access的另一种方法是从IIUG(国际Informix用户组)网站获取我的SQLCMD程序(与Microsoft同名的johnny come Latest程序无关)。它需要Informix CSDK和一个C编译器,但在编译时它只生成请求的输出——我写它的原因之一是因为我非常不喜欢DB访问的行为,我需要一个可以在shell脚本中使用的程序。那么
var=$(echo“select count(*)from table1”| dbaccess testdb)
呢?在检查链接后肯定是重复的。使用
variable=$(…)
的Bash表示法是答案的关键部分。然而,DB访问是一个嘈杂的工具。它将进度信息写入标准错误,并将列标题(和空行)添加到输出中。与您所追求的内容大致相当的是:
var=$(echo'output to”/dev/stdout“不带标题,从表1中选择count(*)dbaccess testdb-2>/dev/null)
。它包括两个空行和变量中所需的数字,
var
;如果使用未加引号的,它将丢失空白(
echo$var
而不是通常推荐的
echo“$var”
)。使用DB Access的另一种方法是从IIUG(国际Informix用户组)网站获取我的SQLCMD程序(与Microsoft同名的johnny come Latest程序无关)。它需要Informix CSDK和一个C编译器,但在编译时,它只生成请求的输出——我编写它的原因之一是因为我非常不喜欢DB访问的行为,我需要一个可以在shell脚本中使用的程序。