内容へ移動
Kijima's private wiki
TANSTAAFL!
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
PDF の出力
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
技術系メモ
»
シェルスクリプトのオプション処理
トレース:
シェルスクリプトのオプション処理
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== シェルスクリプトのオプション処理 ====== シェルスクリプトにオプションを追加したいことがある。[[https://linuxjm.osdn.jp/html/util-linux/man1/getopt.1.html|getopt]]やgetoptsもあるのだが、独自形式にしたければ自分で定義して書けばよい。 ===== getopts使用例 ===== getoptsを使う場合はこのような書き方になる。 <file .sh test-getopts.sh> #!/bin/sh while getopts ab opt do case $opt in a) echo "Option -a" ;; b) file="$2" echo "Option -b file=${file}" shift ;; *|-) break ;; esac done echo "file=${file}" echo "args: $*" </file> オプション指定時にはこのようになる。 <code> $ ./test-getopts.sh -a -b xxx yyy zzz Option -a Option -b file=-b Option -b file=xxx file=xxx args: xxx yyy zzz </code> オプション[-b]が2回呼び出されているものの、最終的には必要な変数設定ができている。\\ ただし、**xxx**がbreak条件にあたるので、**xxx**が残った状態になる。 ===== getopts無し ===== 1文字オプション以外にしたければ次のように書くこともできる。 <file .sh test-optarg.sh> #!/bin/sh while [ -n "$1" ] do case "$1" in -abc) echo "Option -abc" ;; -xyz) file="$2" echo "Option -xyz file=${file}" shift ;; *|--) break ;; esac shift done echo "file=${file}" echo "args: $*" </file> オプション指定時にはこのようになる。 <code> $ ./test-optarg.sh -abc -xyz aaa bbb Option -abc Option -xyz file=aaa file=aaa args: bbb </code>
シェルスクリプトのオプション処理.txt
· 最終更新:
2023/07/01 08:25
by
Minoru Kijima
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
PDF の出力
文書の先頭へ