This question already has answers here:
How do I set a variable to the output of a command in Bash?

(14个回答)


4年前关闭。




这应该是很直截了当的,而且我不知道为什么要为此苦苦挣扎。

我正在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}'

最佳答案

以下内容可在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

10-01 06:22