105.2基礎
実行ファイルの先頭行で、絶対パス/bin/bashを解釈系に指定する。
正しい記述はどれか。
× 不正解
shebangは#!と解釈系の絶対パスで構成する。#!/bin/bashならカーネルがBashを起動してスクリプトを渡す。
詳細解説
正しい
#!/bin/bash#!に続けて解釈系の絶対パスを指定する。
正しい。#!の直後に/bin/bashがあり、カーネルはそのプログラムへスクリプトのパスを渡して起動する。
誤り
#/bin/bash感嘆符がなく、通常のコメントとして扱われる。
誤り。#だけで始まる行はシェルのコメントで、実行ファイル形式を選ぶshebangとしてカーネルに認識されない。
誤り
#!/bin/sh bash/bin/shへbashという引数を渡す形になり、Bash自体を解釈系に指定しない。
誤り。解釈系は/bin/shになり、bashは追加引数として扱われるため、Bash構文を確実に選ぶ指定ではない。
誤り
#!/usr/bin/bash -c設問で指定された/bin/bashではなく、余分な-cもスクリプト実行の指定として不適切である。
誤り。設問の絶対パス/bin/bashを使用せず、-cも通常のスクリプトファイルを解釈させる用途では不要である。
実際に確かめる
一時的な検証環境で実行できる例です。
script=$(mktemp); printf '%s\n%s\n' '#!/bin/bash' 'printf shebang-ok' > "$script"; chmod u+x "$script"; "$script"; rm -f -- "$script"期待される結果
shebang-ok理解のポイント
- 先頭2文字は#!
- 解釈系を絶対パスで指定
- 実行権限も必要
確認時の注意
- 確認環境: GNU Bash 5.2 / 一時ファイル
基礎のおさらい
shebangの役割
実行形式をカーネルへ示す先頭行であり、必ずファイルの最初に置く。
呼出方法
bash script.shと明示して起動すると、実行権限やshebangを使わず指定したBashがファイルを読む。
問題IDKP-105-618
確認環境GNU Bash 5.2 / 一時ファイル
最終技術確認2026-08-13
誤り・権利侵害を報告