「シェルスクリプトの基礎 - 繰り返し文」の版間の差分

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

6行目: 6行目:
== for文の基本 ==
== for文の基本 ==
変数iに1から5までの数字を指定して、変数に代入された値をechoで表示させるというサンプルコードを以下に記述する。<br>
変数iに1から5までの数字を指定して、変数に代入された値をechoで表示させるというサンプルコードを以下に記述する。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
76行目: 76行目:
リストの指定方法を以下に記載する。<br>
リストの指定方法を以下に記載する。<br>
<br>
<br>
===== コマンドの実行結果の使用 =====
==== コマンドの実行結果の使用 ====
リスト部分には、コマンドの実行結果を値として使用でき、その場合は、コマンドをバッククォート(`)で囲む必要がある。<br>
リスト部分には、コマンドの実行結果を値として使用でき、その場合は、コマンドをバッククォート(`)で囲む必要がある。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
85行目: 85行目:
     echo $file
     echo $file
  done
  done
  </source>
   
<br>
  # 出力
  # 出力
  /var/log/messages
  /var/log/messages
93行目: 92行目:
  /var/log/messages-20170702
  /var/log/messages-20170702
  /var/log/messages-20170710
  /var/log/messages-20170710
</syntaxhighlight>
<br>
<br>
また、<span style="color:#C00000"><u>'''bashの場合'''</u></span>は、$()も使用できる。<br>
また、<span style="color:#C00000"><u>'''bashの場合'''</u></span>は、$()も使用できる。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
102行目: 102行目:
     echo $file
     echo $file
  done
  done
  </source>
  </syntaxhighlight>
<br>
==== <code>seq</code>コマンドの使用 ====
<code>seq</code>コマンドは、指定した開始の数値から終わりの数値までを表示するというコマンドで、繰り返す回数を指定することができる。<br>
例えば、1から5までをリストとして指定する場合は、<code>seq 1 5</code>と指定する。<br>
<br>
<br>
===== seqコマンドの使用 =====
seqコマンドは、指定した開始の数値から終わりの数値までを表示するというコマンドで、繰り返す回数を指定することができる。<br>
例えば、1から5までをリストとして指定する場合は、seq 1 5と指定する。<br>
また、開始が1からの場合は、開始の数値を省略することもできる。<br>
また、開始が1からの場合は、開始の数値を省略することもできる。<br>
seq 1 5
<code>seq 1 5</code><br>
または
または<br>
seq 5
<code>seq 5</code><br>
または
または<br>
seq 1 1 5
<code>seq 1 1 5</code><br>
<br>
<br>
seqコマンドを使用して、1から5までを範囲指定して、ファイルを作成するというスクリプトを記述する。<br>
seqコマンドを使用して、1から5までを範囲指定して、ファイルを作成するというスクリプトを記述する。<br>
file_1からfile_5までのファイルが作成される。<br>
file_1からfile_5までのファイルが作成される。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
124行目: 124行目:
     touch file_$data
     touch file_$data
  done
  done
  </source>
  </syntaxhighlight>
<br>
<br>
また、wオプションを使用して、ゼロパディングすることもできる。<br>
また、wオプションを使用して、ゼロパディングすることもできる。<br>
130行目: 130行目:
  seq -w 1 10
  seq -w 1 10
<br>
<br>
===== ブレーズ展開 =====
==== ブレーズ展開 ====
<span style="color:#C00000"><u>'''bashの場合'''</u></span>、ブレーズ展開機能を使用してリストを指定することもできる。<br>
<span style="color:#C00000"><u>'''bashの場合'''</u></span>、ブレーズ展開機能を使用してリストを指定することもできる。<br>
ブレーズ展開は、{開始..最後}といった形式で指定することで、簡単に範囲を指定することができる。<br>
ブレーズ展開は、{開始..最後}といった形式で指定することで、簡単に範囲を指定することができる。<br>
<br>
<br>
例えば、{1..5}で1から5を指定する場合、以下のように記述する。<br>
例えば、{1..5}で1から5を指定する場合、以下のように記述する。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
142行目: 142行目:
     echo $i
     echo $i
  done
  done
  </source>
  </syntaxhighlight>
<br>
<br>
===== 算術式の使用 =====
==== 算術式の使用 ====
<span style="color:#C00000"><u>'''bashの場合'''</u></span>、以下のように、1から5までを指定することもできる。<br>
<span style="color:#C00000"><u>'''bashの場合'''</u></span>、以下のように、1から5までを指定することもできる。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
153行目: 153行目:
     echo $i
     echo $i
  done
  done
  </source>
  </syntaxhighlight>
<br>
<br>
===== ファイルの読み込み =====
==== ファイルの読み込み ====
事前にリストに読み込ませるファイルを作成しておき、catコマンド等でファイルの中身を読み込むという方法ある。<br>
事前にリストに読み込ませるファイルを作成しておき、catコマンド等でファイルの中身を読み込むという方法ある。<br>
list.txtファイルを事前に作成して、catコマンドでファイルの中身を読み込む。<br>
list.txtファイルを事前に作成して、catコマンドでファイルの中身を読み込む。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
165行目: 165行目:
     echo $i
     echo $i
  done
  done
  </source>
  </syntaxhighlight>
<br>
<br>
===== コマンドライン引数の使用 =====
==== コマンドライン引数の使用 ====
リスト部分に"@$"を使用すると、シェルスクリプトを実行する際の引数を、リストの値にすることができる。<br>
リスト部分に"@$"を使用すると、シェルスクリプトを実行する際の引数を、リストの値にすることができる。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
176行目: 176行目:
     echo $i
     echo $i
  done
  done
  </source>
  </syntaxhighlight>
<br>
<br>
===== 配列変数の使用 =====
==== 配列変数の使用 ====
配列を使用してリストを指定することもできる。<br>
配列を使用してリストを指定することもできる。<br>
配列arrayに1から5を設定して、それをリスト部分で呼び出す。<br>
配列arrayに1から5を設定して、それをリスト部分で呼び出す。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
189行目: 189行目:
     echo $i
     echo $i
  done
  done
  </source>
  </syntaxhighlight>
<br><br>
<br><br>