-1

for do一部のアプリケーションを実行するためにbashシェルでループを行う方法は?

以下にこのコードを示します。usb-servo アプリを実行したいのですが、usb-servo の値が 190 から 225 の場合、コードを実行しようとしましたが、for do何も出力されず、サーボが動きませんでした.

#! /bin/sh
i=190

sleep 0.4
for (( i=190;i<=225;i++ ))
do
echo my_pass | sudo -S /usr/bin/usb-servo set 0 $i
done

#echo my_pass | sudo -S /usr/bin/usb-servo set 0 195
#echo my_pass | sudo -S /usr/bin/usb-servo set 0 200
#echo my_pass | sudo -S /usr/bin/usb-servo set 0 205
#echo my_pass | sudo -S /usr/bin/usb-servo set 0 210
#echo my_pass | sudo -S /usr/bin/usb-servo set 0 215
#echo my_pass | sudo -S /usr/bin/usb-servo set 0 220
#echo my_pass | sudo -S /usr/bin/usb-servo set 0 225
4

1 に答える 1

0

ループは問題ないように見えますが、範囲を使用して試してみて、必要なものが出力されるかどうかを確認することもできます。

for i in {190..225}; do
    echo my_pass | sudo -S /usr/bin/usb-servo set 0 $i
done

これもあなたのループも予期した出力を出力しない場合、問題はループにありません。おそらくあなたのusb-servoコマンドの問題です。

于 2012-09-06T02:47:48.843 に答える