だから私はマシンにバッテリーがあることを確認してから、バッテリーの有無に応じて別のコマンドを実行しようとしています。これが私が今まで持っているものです:
upower -d >> /tmp/batstat
if [ grep -F BAT0 /tmp/batstat ]; then
echo "BAT0 PRESENT" >> /tmp/batstat
else
echo "NO BAT0" >> /tmp/batstat
fi
ただし、期待どおりにBAT0が/ tmp / batstatに書き込まれない場合は、「bash:[:Too Many Arguments」エラーが返されます。 grepを実行するだけでうまく動作しますが、なぜif条件で動作しないのか理解できません。
バッテリーを確認するより良い方法がある場合は、100%開いています。
ベストアンサー1
if upower -d | grep -qF BAT0 ; then
echo "BAT0 PRESENT"
else
echo "NO BAT0"
fi
if
一連のコマンドを実行し、最後のコマンド(この場合はgrep)の状態を処理します。grep
一致するものがある場合はtrueを返し、そうでない場合はfalseを返します。