Linux 将AWK结果分配给变量
这应该是非常直截了当的,我不知道为什么我要和它斗争 我在一个shell脚本中运行以下psql命令,以确定在插入数据之前是否删除了所有索引Linux 将AWK结果分配给变量,linux,postgresql,shell,scripting,awk,Linux,Postgresql,Shell,Scripting,Awk,这应该是非常直截了当的,我不知道为什么我要和它斗争 我在一个shell脚本中运行以下psql命令,以确定在插入数据之前是否删除了所有索引 INDEXCOUNT=$(psql -p $dbPort -U enterprisedb -d main_db -c "select Count(*) from all_indexes where index_schema = 'enterprisedb';") 此时,INDEXCOUNT等于“COUNT--------0” 现在,如果我回显下面的行,我会得
INDEXCOUNT=$(psql -p $dbPort -U enterprisedb -d main_db -c "select Count(*) from all_indexes where index_schema = 'enterprisedb';")
此时,INDEXCOUNT等于“COUNT--------0”
现在,如果我回显下面的行,我会得到我想要的结果-
echo $INDEXCOUNT | awk '{print $3}'
如何将$INDEXCOUNT | awk'{print$3}'
的值赋给变量,以便在“IF”语句中检查它
例如:
RETURNCOUNT=$INDEXCOUNT | awk '{print $3}'
以下内容在bash上正常工作:
a=$(echo '111 222 33' | awk '{print $3;}' )
echo $a # result is "33"
另一个选项是将字符串转换为数组:
a="111 222 333"
b=($a)
echo ${b[2]} # returns 333
您可以尝试以下方法:
RETURNCOUNT=`echo $INDEXCOUNT | awk '{print $3}'`
想法是在反勾号之间包含任何shell命令,以将结果放入变量。或者您可以直接使用:
${INDEXCOUNT##* }
使用if语句/
INDEXCOUNT="111 222 333"
echo $INDEXCOUNT | awk '{if ($3 == 333) print $3}';
RETURNCOUNT=$(echo$INDEXCOUNT | awk'{print$3}')
“$INDEXCOUNT”
不太可能是命令。@glenn:在这种情况下,可以使用do echo。。。其思想是在backticks之间包含任何shell命令,以便将结果放入变量$()
优于backticks
,因为它使嵌套命令更容易,尽管此代码可能有助于解决此问题,提供关于为什么和/或如何回答该问题的额外背景将显著提高其长期价值。请在您的回答中添加一些解释。