1. ホーム
  2. ubuntu

シェルスクリプトで「整数式が期待される」場合の解決方法

2022-02-07 08:17:08

シェルスクリプトで、" [ $temp -gt "0" ]"などのパラメータで比較する場合、問題の " が発生する場合があります。 整数式が期待される "エラーが発生します。これは、これらのパラメータ:-gt, -lt, -eqが数値を比較するためで、変数tempが文字列の場合、上記のエラーが発生します。元の文章を " [ $temp -gt 0 ]" に変更しても同じ結果になります。

この問題を解決するもっと回りくどい方法は、awk ツールを使って変数を比較し、その結果を返し、さらにその比較結果を対応する数値量と比較することです。具体的には上の例の場合、次のように処理できます。

<スパン [ `echo ${TEMP} | awk -v tem=0 '{print($1>tem)? "1":"0"}'` -eq "0" ]。
以下のように使用します。
<スパン
TEMP=`adb shell "cat /sys/class/backlight/intel_backlight/brightness"`
if [ `echo ${TEMP} | awk -v tem=0 '{print($1>tem)? "1":"0"}'` -eq "0" ]; then
	adb shell input keyevent 26
fi