105.2基礎
スクリプトを./deploy.sh stagingとして実行する。
スクリプト内でstagingだけを参照する。
使用する特殊パラメータはどれか。
× 不正解
$1は第1引数、$2は第2引数を表す。空白を含む値を1引数として保つには通常"$1"と引用する。
詳細解説
誤り
$0スクリプト名またはシェル名を表す。
誤り。$0は実行方法に応じたスクリプト名等を表し、stagingのような最初のユーザー引数ではない。
誤り
$#位置パラメータの個数を表す。
誤り。$#はこの例では1という個数になり、引数に格納された文字列stagingを返さない。
正しい
$1スクリプトへ渡された第1引数を表す。
正しい。コマンド名の次に渡されたstagingは第1位置パラメータへ設定され、$1で参照できる。
誤り
$@すべての位置パラメータを表す。
誤り。$@は第1引数だけに限定せず、設定されたすべての位置パラメータを展開する。
実際に確かめる
一時的な検証環境で実行できる例です。
bash --noprofile --norc -c 'printf "%s\n" "$1"' deploy.sh staging期待される結果
staging理解のポイント
- $0はスクリプト名
- $1から位置引数
- 展開時は引用
確認時の注意
- 確認環境: GNU Bash 5.2 / 短命シェル
基礎のおさらい
番号の範囲
$1から$9を超える番号は${10}のように波括弧で囲み、$1と文字0の連結との曖昧さを避ける。
引用
位置パラメータは空白やワイルドカードを含み得るため、通常は"$1"のように引用して渡す。
問題IDKP-105-620
確認環境GNU Bash 5.2 / 短命シェル
最終技術確認2026-08-13
誤り・権利侵害を報告