Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

readコマンドで改行不要一文字のみで読み込む(あるいはbashでジョグ機能的数値増減をやる方法)

実際のところ

"-n"で文字数をきめる

read -n 1 value

実用例:JOG機能的

コントローラー等でユーザーがロボットを操作しながら位置調整したり検討したりする機能をジョグ機能とか言ったりします

MODE=$1
VAL_X=0
VAL_Y=0

function callPoint() {
   echo $1 | nc -w 0 DISTIP DISTPORT
}

function sendPacket() {
    TARGET=$1
    VALUE=$2
    if [ $MODE = "DEBUG"  ]; then
       echo
       echo "$TARGET=$VALUE"
       echo "start"
    elif [ $MODE = "REAL"  ]; then
       callPoint "$TARGET=$VALUE"
       callPoint "start"
    else
      printf $1 $2
    fi
}

while :
do
  read -n 1 -p "Move (w/a/s/d q) :" key
  case "$key" in
    w) VAL_Y=$(($VAL_Y+200)); sendPacket "y" $VAL_Y;;
    a) VAL_X=$(($VAL_X-200)); sendPacket "x" $VAL_X;;
    s) VAL_Y=$(($VAL_Y-200)); sendPacket "y" $VAL_Y;;
    d) VAL_X=$(($VAL_X+200)); sendPacket "x" $VAL_X;;
    q) echo "Repeat end."
          break ;;
    *) echo "Push w,a,s,d, or q key.";;
  esac
done