モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

シェルスクリプトにおける反復処理

モーダルを閉じる

ステッカーを選択してください

お支払い手続きへ
モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2013/07/26
最終更新最終更新
2018/05/25
記事区分記事区分
一般公開

for

sample.sh

#!/bin/sh

for i in a b c; do
    echo $i
done

ARR=(
    "abc"
    "xyz"
)
for e in "${ARR[@]}"; do
    echo $e
done

実行例

$ ./sample.sh
a
b
c
abc
xyz

while

sample.sh

#!/bin/sh

cnt=1
while [ $cnt -lt 5 ]; do  # [] はtestコマンドの略記法であり「test $cnt -lt 3」としても同じ意味。
    echo $cnt
    cnt=`expr $cnt + 1`
done


while :   # ':'はpythonでのpassに相当するコマンド
do
    echo 'looping...'
    # break
done

実行例

$ ./sample.sh
1
2
3
4
looping...
looping...
...

ファイルを読み込む

in.txt

line1
line2

sample.sh

#!/bin/sh
while read line
do
  echo $line
done < in.txt

実行例

$ ./sample.sh
line1
line2

コマンドラインで実行する場面では以下のように一行で表現します。

$ while read line; do echo $line; done < in.txt
Likeボタン(off)0
詳細設定を開く/閉じる
アカウント プロフィール画像

アラサーエンジニア

記事の執筆者にステッカーを贈る

有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

>>さらに詳しくステッカーを贈る
ステッカーを贈る コンセプト画像

Feedbacks

Feedbacks コンセプト画像

    ログインするとコメントを投稿できます。

    ログインする

    関連記事

    • UNIX リダイレクションについて
      「下記ファイルディスクリプタがプロセスと結びつける対象ファイル」を別のファイルに変更することをリダイレクションとよびます。実際には、ファイルディスクリプタ1と2の対象ファイルの変更を指すことが多いです。 ファイルディスクリプタとは? ファイルディスクリプタは「プロセス」と「プロセスが使用するファイル」を結びつけるもので、それらには0,1,2,...と連続した番号が割り当てられています。ファイルディ...
    • シェルスクリプトにおける数値計算
      シェル変数はすべて文字列扱いであるため、数値計算のためには専用のコマンドを用いる必要があります。 整数同士の計算 整数同士の四則演算にはexprコマンドを使用します。 sample.sh #!/bin/sh expr 1 + 1 expr 1 - 1 expr 1 '*' 1 # ワイルドカードと区別するために、クォーテーションで囲う必要があります expr 1 / 1 expr 1 % 1 実行...
    • egrepとgrepの違い
      grepは 'g'lobal 'r'egular 'e'xpression 'p'rint つまり、全体から正規表現で一致したものを抽出するためのコマンドです。egrepは 'e'xtended grep つまりgrepの機能拡張版です。拡張正規表現とよばれる式が使用できるため、grepと比較して高度な抽出が可能になります。とはいえ、grepに'-E'オプションを付与して実行するとegrepとほぼ...
    • シェルスクリプトにおける関数定義
      シェル関数は複数のコマンドをひとまとめにしたものです。引数の取得では、シェルスクリプトの引数と同じ名称の特殊変数を使用します。また、独自のローカル変数を用意することができないため、関数外で使用されている変数の内容を書き換えてしまう危険性があります。 シェル関数は複数のコマンドをまとめたもの sample.sh #!/bin/sh echo1(){ echo 1 } echo1 実行例 $ ...
    • シェルスクリプトでシグナルをキャッチする
      無限ループに陥ってしまったプロセスを強制終了させるためにはCtrl-Cやkillコマンドを利用します。このとき、プロセスにはシグナルというものが送られています。プロセスはシグナルの種類に応じて既定された処理を実行します。trapコマンドを用いると、各シグナル番号に対応する既定の処理を書き換えることができます。 trapコマンド シグナルN1, N2, N3, ...を受けたときに実行するコマンドを...