web-dev-qa-db-ja.com

AWK結果を変数に割り当てる

これはかなり率直であるはずであり、なぜ私がそれに苦労しているのか分かりません。

データを挿入する前にすべてのインデックスが削除されたかどうかを確認するために、シェルスクリプト内から次の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}'
30
user739866

以下は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
54
nimrodm

または、直接使用できます:

${INDEXCOUNT##* }
0

これは、if文/

INDEXCOUNT="111 222 333"
echo $INDEXCOUNT | awk '{if ($3 == 333) print $3}';
0
GoggiP