Bashスクリプトからコマンドの数値if条件を読み取る

Bashスクリプトからコマンドの数値if条件を読み取る

バッテリーの状態を確認し、バッテリーが不足しているときにノートブックを一時停止するコマンドを作成しようとしています。私は次のようなものを使用しようとしています:

#!/bin/bash
if [ $(acpi -b | cut -c 25) < 11 ]
then notify-send "Hello"
fi

これはうまくいきますが、何らかの理由で11を5などの1桁の数字に置き換えるとエラーが発生します。

battery-notify-standby: line 2: 5: No such file or directory

また、算術式として指定するために、角かっこを2つの丸括弧で置き換えてみました。それから私は得ます

battery-notify-standby: line 2: ((: < 11 : syntax error: operand expected (error token is "< 11 ")

正確に何が間違っているのかわかりません。誰でも私を助けることができますか?

答え1

シェルの演算子は、<比較演算子ではなくリダイレ​​クト演算子です。名前の付いたファイルがあって11読みやすく正しく動作するようです。 (ただし、出力確認とは何の関係もありません。常に仮定を確認してください!)

探している比較演算子は-ltありません<

答え2

コマンドにエラーがあるようです$(acpi -b | cut -c 25)[ ]エラーは、次の変更時に(( ))空白を生成するコマンドと同じです。

bash -c '((  < 11))'
bash: line 1: ((: < 11: syntax error: operand expected (error token is "< 11")

関連情報