Assign AWK result to variable
本问题已经有最佳答案,请猛点这里访问。
这应该是相当直截了当的,我不知道为什么我要和它斗争。
我正在shell脚本中运行以下psql命令,以确定在插入数据之前是否删除了所有索引。
1 | INDEXCOUNT=$(psql -p $dbPort -U enterprisedb -d main_db -c"select Count(*) from all_indexes where index_schema = 'enterprisedb';") |
此时,indexCount等于"count------0"
现在,如果我回音下面这行,我就得到我想要的结果。-
1 | echo $INDEXCOUNT | awk '{print $3}' |
如何将EDOCX1[0]的值赋给变量,以便在"if"语句中对其进行检查?
例如:
1 | RETURNCOUNT=$INDEXCOUNT | awk '{print $3}' |
以下内容在bash上正常工作:
1 2 | a=$(echo '111 222 33' | awk '{print $3;}' ) echo $a # RESULT IS"33" |
另一个选项是将字符串转换为数组:
1 2 3 4 | a="111 222 333" b=($a) echo ${b[2]} # RETURNS 333 |
这可能更容易用于测试if语句/
1 2 | INDEXCOUNT="111 222 333" echo $INDEXCOUNT | awk '{if ($3 == 333) print $3}'; |
或者您可以直接使用:
1 | ${INDEXCOUNT##* } |
您可以尝试以下操作:
1 | RETURNCOUNT=`echo $INDEXCOUNT | awk '{print $3}'` |
其思想是在backticks之间包含任何shell命令,以将结果变为变量。