ホーム » 個人掲示板 » シェルwhile
My Google+

シェルwhile

  • 技術三昧@2017-04-04 10:33:46

スポンサーリンク

Whileは処理回数が開始時点では不明確なループ処理には while 文を使用する。


while [ 条件式 ]
do
  条件成立時の処理…
done
※if 文と同じように [] を使用して条件式を指定する。

sample_while.shの例を見てください。
①■キーボードから入力したキーによって、処理する。

#!/bin/bash

read key
while [ "$key" = "o" ]
do
  echo "ok"
  read key
done
※キーボード押したキーを読み、「o:オー]入力する場合のみ、「ok」とプリントアウト。
②■ファイルを一行毎にを読込し、プリントアウト

#!/bin/bash

while read line
do
  echo "$line"
done <test.txt
# while文にリダイレクションするには done の直後に指定する
※test.txtを1行ごとに読込してプリントアウトする。

③■無限ルールし、ある条件満たしたら、処理中断する
#!/bin/bash

while :
do
  read key
  if [ "$key" = "q" ]; then
    echo "breakコマンドを実行します..."
    break
  else
    echo "$keyが入力されました。"
  fi
done
echo "無限ループを抜けました。"

exit 0
※キーボード入力で、「q」以外入力されたら、”xが入力されました。”とプリントアウト。q」入力されたら、無現ループ中断する。

④■多重ループ、breakやcontinue指定して処理

#!/bin/bash

while :
do
  while :
  do
    read key
    if [ "$key" = "q" ]; then
      break 2
    fi
  done
done
※2重ループで、q入力された場合、外のループも中断する。
備考:どのループ中断するするかをbearkの後に数字を指定します。break所在場所ならば1を、親ループの場合2を、親の親ループの場合3を指定し、中断させることができる。
continue利用方法も同じ。

以上、シェルwhileのメモでした。

次は、シェルで関数の使用方法を紹介。

0人

◎技術三昧掲示板で掲載した情報(リンク・リンク先を含む)に関して、掲示板管理者が確認や保証を行うことは一切ありません。
すべて利用者のモラルに委ねられおり、掲示板から張られたリンクに関するトラブルが生じても管理者側は免責とさせていただきます。

閉じる