这应该是非常直接的,我不知道为什么我在努力。
我在shell脚本中运行以下psql命令,以确定在插入数据之前是否已删除所有索引。
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}'
答案 0 :(得分:49)
以下在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
答案 1 :(得分:0)
或者您可以直接使用:
${INDEXCOUNT##* }
答案 2 :(得分:0)
使用if语句/
进行测试可能更容易INDEXCOUNT="111 222 333"
echo $INDEXCOUNT | awk '{if ($3 == 333) print $3}';
答案 3 :(得分:-2)
你可以试试这个:
RETURNCOUNT=`echo $INDEXCOUNT | awk '{print $3}'`
这个想法是在反引号之间包含任何shell命令以将结果变为变量。