忍者ブログ
たんなるメモです。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

先日友人から「シェルスクリプトでよくねー?」って言われたので、上記プログラムをシェルスクリプト移植してみた。

※動作実験してません
※このままコピペしても動かないと思います。
※エラい人添削お願いします。
#!/bin/sh
NUM = 0
PRG = "sudo PROGRAM -OPTION "

# GPIOのポート2,3,4,17を入力でオープン
#
echo 2 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio2/direction
echo low > /sys/class/gpio/gpio2/direction
echo 3 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio3/direction
echo low > /sys/class/gpio/gpio3/direction
echo 4 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio4/direction
echo low > /sys/class/gpio/gpio4/direction
echo 17 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio17/direction
echo low > /sys/class/gpio/gpio17/direction

# GPIOポートの入力状態を調べ数値に変更
#
if cat /sys/class/gpio/gpio2/value -eq 1
then
  NUM = `expr $NUM + 1`
fi
if cat /sys/class/gpio/gpio3/value -eq 1
then
  NUM = `expr $NUM + 2`
fi
if cat /sys/class/gpio/gpio4/value -eq 1
then
  NUM = `expr $NUM + 4`
fi
if cat /sys/class/gpio/gpio17/value -eq 1
then
  NUM = `expr $NUM + 8`
fi

# GPIOのポートを閉じる
#
echo 2 > /sys/class/gpio/unexport
echo 3 > /sys/class/gpio/unexport
echo 4 > /sys/class/gpio/unexport
echo 17 > /sys/class/gpio/unexport

# 条件に応じて実行データを設定
#
case $NUM in
   0 ) EXE = "OBJECT01";;
   1 ) EXE = "OBJECT02";;
   2 ) EXE = "OBJECT03";;
   3 ) EXE = "OBJECT04";;
   4 ) EXE = "OBJECT05";;
   5 ) EXE = "OBJECT06";;
   6 ) EXE = "OBJECT07";;
   7 ) EXE = "OBJECT08";;
   8 ) EXE = "OBJECT09";;
   9 ) EXE = "OBJECT10";;
  10 ) EXE = "OBJECT11";;
  11 ) EXE = "OBJECT12";;
  12 ) EXE = "OBJECT13";;
  13 ) EXE = "OBJECT14";;
  14 ) EXE = "OBJECT15";;
  15 ) EXE = "OBJECT16";;
esac

# プログラム オプションと結合
#
EXE = `expr $PRG + $EXE`

# 表示と実行
#
echo ${EXE}
${EXE}


# v0.0.0 Oct. 26 2015
PR
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
プロフィール
HN:
ぽんかん
性別:
非公開
P R
忍者カウンター
忍者ブログ [PR]