メインコンテンツへスキップ
レッスン 6 / 12推定時間: 30

コマンドライン引数の処理

シェルスクリプトでコマンドライン引数を受け取り、解析し、オプションを処理する方法を学習します

このレッスンの学習目標

  • 位置パラメータの使い方を理解する
  • getoptsを使ったオプション解析を習得する
  • 長いオプションの処理方法を学ぶ
  • 実用的な引数処理を実装できる

位置パラメータの基本

コマンドライン引数は、位置パラメータとしてスクリプトに渡されます。

基本的な位置パラメータ

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

shift命令

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

getoptsを使ったオプション解析

getoptsは、短いオプション(-a、-b など)を解析するための組み込みコマンドです。

基本的なgetopts

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

引数を必要とするオプション

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

長いオプションの処理

手動での長いオプション処理

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

短いオプションと長いオプションの組み合わせ

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

実践的な例

ファイル処理スクリプト

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

演習問題

演習1: 設定ファイル生成スクリプト

オプションを解析して設定ファイルを生成するスクリプトを作成してください。

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

演習2: バックアップスクリプト

柔軟なオプションを持つバックアップスクリプトを作成してください。

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

まとめ

このレッスンで学んだこと:

  1. 位置パラメータ - $0、$1、$@、$#、shift の使い方
  2. getopts - 短いオプションの解析
  3. 長いオプション - 手動での実装方法
  4. 混合オプション - 短いオプションと長いオプションの組み合わせ
  5. 実践的な実装 - エラーハンドリング、検証、ヘルプ表示

次のレッスンでは、文字列操作と配列について学習します。

さらに学習を続けるには

素晴らしい学習ペースです!次のレッスンに進むには、無料会員登録をお願いします。無料会員では各コース3レッスンまで学習できます。

無料で続きを学ぶ

各コース3レッスンまで学習可能

学習進捗の自動保存

コース修了証明書の発行