Raspberry Piのbashスクリプトに問題があります。
x='gpio -g read 22'
if [ $x -ge 1 ]
then
gpio -g write 23 1
fi
エラーはinteger expression expected
。どうして?
これは、文字列_gpio -g read 22
_が1より大きいかどうかを確認しているためです。_gpio -g read 22
_は数値ではないため、エラーが発生します。
あなたは何をしようとしているのか説明していませんが、gpio
コマンドのoutputを比較したいと思います。そのためには、コマンドを$()
またはバックティック(_``
_)で囲む必要があります。
_x=$(gpio -g read 22)
if [ "$x" -ge 1 ]
then
gpio -g write 23 1
fi
_
または、もっと簡単に:
_[ "$(gpio -g read 22)" -ge 1 ] && gpio -g write 23 1
_
割り当て_foo='command'
_はcommand
を実行しません。変数foo
はstringcommand
の値を受け取り、その出力を受け取りません。