103.1基礎
実行可能なhealthcheckが現在のディレクトリにある。
現在のディレクトリはPATHに含まれていない。
適切な実行方法はどれか。
× 不正解
コマンド名にスラッシュが含まれると、BashはPATH検索ではなく指定パスを実行する。./は現在のディレクトリを表す。
詳細解説
誤り
healthcheckPATHに現在のディレクトリがないため名前だけでは検索されない。
名前だけではPATHを検索するため、現在位置がPATH外なら見つからない。
誤り
/healthcheckルートディレクトリ直下の別パスを指定する。
ルート直下のhealthcheckを指し、現在位置のファイルではない。
誤り
~/healthcheckホームディレクトリ直下を指定し、現在のディレクトリとは限らない。
ホーム直下を指すため、現在位置と一致する保証がない。
正しい
./healthcheck./で現在のディレクトリにあるファイルを明示する。
正解。現在のディレクトリにある実行ファイルを直接指定する。
実際に確かめる
一時的な検証環境で実行できる例です。
LAB_DIR=$(mktemp -d)
( cd "$LAB_DIR"; printf '#!/bin/sh
echo OK
' > healthcheck; chmod +x healthcheck; ./healthcheck )
rm -r "$LAB_DIR"期待される結果
OK理解のポイント
- PATH検索
- 相対パス./
- 実行権限
確認時の注意
- 確認環境: Bash 5.2
基礎のおさらい
明示パス
コマンド名に/が含まれる場合、BashはPATH検索を行わずそのパスを実行する。
現在ディレクトリとPATH
安全上の理由から、現在ディレクトリは標準PATHに含まれないことが多い。
問題IDKP-103-023
確認環境Bash 5.2
最終技術確認2026-08-12
誤り・権利侵害を報告