シェルスクリプトでTwi(ry — prompter関数の中身。

2010年2月20日 Linux, スクリプト関連, 雑記

昨日の続き。昨日の記事では実体参照にするべき文字をサラッと生で書いてて一部消えてたので、その辺の訂正も兼ねて。
昨日のはココ。既に修正済。【シェルスクリプトでTwitterに投稿。リストで台詞生成編】

もう如何に面倒臭くなく実装するかしか考えてない感じなのでサラッと説明終わらせちゃう。
このスクリプトの肝はスクリプトその物ではなくスクリプトから参照されるリストの方なので、スクリプト側ではそう難しいことはやっていません。

そんなわけで昨日も貼ったけどもスクリプト。今日は一部だけ。

#台詞生成関数
prompter () {
  count=1
  #10分毎にリストを切り替え
  case “$mt” in
    0* ) mt=00 ;;
    1* ) mt=10 ;;
    2* ) mt=20 ;;
    3* ) mt=30 ;;
    4* ) mt=40 ;;
    5* ) mt=50 ;;
  esac
  for (( i = 0; i < 4; i++ ))
  {
    #テキスト行数取得
    ttnum=`wc -l </home/user/dir/$hr/$mt/$count.txt`
    #1行抽出・配列格納
    prpt[i]=`sed -n $((($RANDOM % $ttnum) + 1))p /home/user/dir/$hr/$mt/$count.txt`
    count=$((count + 1))
  }
  for (( i = 0; i < ${#prpt[*]}; i++ ))
  {
    #テキスト生成
    fprpt=”$fprpt””${prpt[i]}”
  }
  IPS=`sed -n $1p /home/user/dir/ips.list`
  curl -u $IPS -d status=”$fprpt” http://twitter.com/statuses/update.xml
}

昨日はprompter関数を呼ぶまでの流れをやったので今日はprompter関数の処理内容を軽く。

1行目 変数countに1を代入。
3〜8行目 caseで変数mtの値を評価して、値を丸めるて変数mtに代入。
9〜16行目 変数ttnumにwcコマンドで/home/user/dir/$hr/$mt/$count.txtの行数を代入。
配列変数prpt[i]にsed -n $((($RANDOM % $ttnum) + 1))pで/home/user/dir/$hr/$mt/$count.txtの指定行を代入。変数countに1追加。これらをfor文で4回ループ。
17〜21行目 これは簡単。変数fprptに変数fprptと配列変数prpt[i]を展開しながら代入。これ一行でできたりしないのかしら?

あとは、この前書いた【シェルスクリプトでTwitterに投稿。】にある2行のスクリプトでTwitterに投稿される。と言う流れ。

ダラダラと書いてきましたがこんな感じです。ホントに軽く。だって、読んでる人が何を知らないかを知らないし。そもそも読んでる人がいるのかも知らないし。

役に立ったならご褒美くらいくださってもよろしくってよ。
ホラこんな所にアマゾンのウィッシュリストが。

コメントは受け付けていません。