use*_*824 6 bash shell-script command-substitution
我在树莓派上的 bash 脚本有问题:
x='gpio -g read 22'
if [ $x -ge 1 ]
then
gpio -g write 23 1
fi
Run Code Online (Sandbox Code Playgroud)
错误是integer expression expected。为什么?
ter*_*don 11
那是因为您正在检查字符串gpio -g read 22是否大于 1。由于gpio -g read 22不是数字,您会收到该错误。
你不解释你正在尝试做的,但我猜你要比较的输出中的gpio命令。为此,您需要将命令括在$()或反引号 ( ``) 中:
x=$(gpio -g read 22)
if [ "$x" -ge 1 ]
then
gpio -g write 23 1
fi
Run Code Online (Sandbox Code Playgroud)
或者,更简单地说:
[ "$(gpio -g read 22)" -ge 1 ] && gpio -g write 23 1
Run Code Online (Sandbox Code Playgroud)
作业foo='command'没有运行command。该变量foo采用字符串 的值command而不是其输出。