📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
編集の要約なし |
|||
| 36行目: | 36行目: | ||
パラメータの取得には、$1〜$9が使用できる。<br> | パラメータの取得には、$1〜$9が使用できる。<br> | ||
10番目以降のパラメータを参照する場合は、${10}のように数値を{}で囲めば参照できる。<br> | 10番目以降のパラメータを参照する場合は、${10}のように数値を{}で囲めば参照できる。<br> | ||
< | <syntaxhighlight lang="sh"> | ||
#!/bin/sh | #!/bin/sh | ||
| 42行目: | 42行目: | ||
echo '$2 =' "$2" | echo '$2 =' "$2" | ||
echo '$3 =' "$3" | echo '$3 =' "$3" | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
# 実行 | # 実行 | ||
| 108行目: | 108行目: | ||
パラメータが指定されなかった時のために、デフォルト値を指定しておくこともできる。<br> | パラメータが指定されなかった時のために、デフォルト値を指定しておくこともできる。<br> | ||
下記の例では、1番目、2番目、3番目のパラメータの初期値を、それぞれ、100、200、300 に設定している。<br> | 下記の例では、1番目、2番目、3番目のパラメータの初期値を、それぞれ、100、200、300 に設定している。<br> | ||
< | <syntaxhighlight lang="sh"> | ||
#!/bin/sh | #!/bin/sh | ||
| 114行目: | 114行目: | ||
echo '$2 =' "${2:-200}" | echo '$2 =' "${2:-200}" | ||
echo '$3 =' "${3:-300}" | echo '$3 =' "${3:-300}" | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
# 実行 | # 実行 | ||
| 129行目: | 129行目: | ||
シェルスクリプト実行時に渡されたパラメータは、特殊変数$@を使用して参照することができる。<br> | シェルスクリプト実行時に渡されたパラメータは、特殊変数$@を使用して参照することができる。<br> | ||
以下の例では、for文を使用して、$@の要素を1つずつ抽出して処理している。(カウンタ変数$countをインクリメントしながらループしている)<br> | 以下の例では、for文を使用して、$@の要素を1つずつ抽出して処理している。(カウンタ変数$countをインクリメントしながらループしている)<br> | ||
< | <syntaxhighlight lang="sh"> | ||
#!/bin/sh | #!/bin/sh | ||
| 138行目: | 138行目: | ||
let count=$count+1 | let count=$count+1 | ||
done | done | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
# 実行 | # 実行 | ||
| 150行目: | 150行目: | ||
また、特殊変数の指定部分<code>in "$@"</code>は省略して記述することができる。<br> | また、特殊変数の指定部分<code>in "$@"</code>は省略して記述することができる。<br> | ||
明示的にin "$@"を記述する場合は、$@の部分をダブルクォーテーションで囲むことに注意する。<br> | 明示的にin "$@"を記述する場合は、$@の部分をダブルクォーテーションで囲むことに注意する。<br> | ||
< | <syntaxhighlight lang="sh"> | ||
#!/bin/sh | #!/bin/sh | ||
| 160行目: | 160行目: | ||
let count=$count+1 | let count=$count+1 | ||
done | done | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
===== while文を使用する方法 ===== | ===== while文を使用する方法 ===== | ||
| 169行目: | 169行目: | ||
$1はパラメータの最初の要素を参照する変数であるが、直後のshiftによってパラメータを1つずつシフトしているので、<br> | $1はパラメータの最初の要素を参照する変数であるが、直後のshiftによってパラメータを1つずつシフトしているので、<br> | ||
結果として、全てのパラメータを順番に参照することができる。<br> | 結果として、全てのパラメータを順番に参照することができる。<br> | ||
< | <syntaxhighlight lang="sh"> | ||
#!/bin/sh | #!/bin/sh | ||
| 180行目: | 180行目: | ||
let count=$count+1 | let count=$count+1 | ||
done | done | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
# 実行 | # 実行 | ||
| 195行目: | 195行目: | ||
$@が各パラメータを個別に保持しているのに対し、$*は全てのパラメータを結合した1つの文字列である。<br> | $@が各パラメータを個別に保持しているのに対し、$*は全てのパラメータを結合した1つの文字列である。<br> | ||
それぞれ、ダブルクォートで囲んで参照した場合と、囲まずに参照した場合の展開方法も含めて理解する。<br> | それぞれ、ダブルクォートで囲んで参照した場合と、囲まずに参照した場合の展開方法も含めて理解する。<br> | ||
< | <syntaxhighlight lang="sh"> | ||
#!/bin/sh | #!/bin/sh | ||
| 221行目: | 221行目: | ||
echo "$arg" | echo "$arg" | ||
done | done | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
# 実行 | # 実行 | ||
| 272行目: | 272行目: | ||
以下の例では、<code>shift</code>コマンドを実行して$1の値を出力し続けている。<br> | 以下の例では、<code>shift</code>コマンドを実行して$1の値を出力し続けている。<br> | ||
<code>shift</code>コマンドにより、3つの引数が順番にシフトされている。<br> | <code>shift</code>コマンドにより、3つの引数が順番にシフトされている。<br> | ||
< | <syntaxhighlight lang="sh"> | ||
#!/bin/sh | #!/bin/sh | ||
| 289行目: | 289行目: | ||
param = b | param = b | ||
param = c | param = c | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:シェルスクリプト]] | [[カテゴリ:シェルスクリプト]] | ||