bash文字列をintに

bash文字列をintに

私が試したことは次のとおりです。

#!/bin/sh
res=`df | awk 'FNR == 2 { print $5 }'`
res2=$((res+0))

これは私のせいです:

-bash:53%:構文エラー:オペランドが必要です(「%」と表示されたエラー)。

Googleで「string to int bash」を検索しましたが、表示されましたが、$((res+0))string()の理由で機能しませんでした。これを次の(まだ有効な)ifステートメントを実行できるように変換するにはどうすればよいですか?%53%

if [ "$res2" -ge 50 ]
then
    echo "Your disk >=50% full!"
fi

ベストアンサー1

awkに抑制するように指示します%

#!/bin/sh
res=`df | awk 'FNR == 2 { sub("%","",$5); print $5 }'`
res2=$((res+0))

しかし、この行が何もしないことがわかりますres2。がなければ、declare -i res2bashはそれを文字列として扱います。次のことができます。

if [ $res -ge 50 ]; then
    echo "Your disk >= 50% full!"
fi

おすすめ記事