GNUとUnixのコマンド
あるユーザーが自作のシェルスクリプト./myscript.shを作成し実行権限を付与したが、単に「myscript.sh」と入力して実行しようとすると「command not found」と表示される。この現象の原因として最も適切な説明はどれか。
- Aシェルスクリプトには実行権限を付与できないため常にこのエラーが出る
- Bシェルスクリプトの拡張子.shはLinuxでは認識されないため
- ✓カレントディレクトリが環境変数PATHに含まれていないため、パスを指定せずにコマンド名だけでは実行できない
- Droot権限でないユーザーはシェルスクリプトを実行できないため
解説
多くのLinux環境ではセキュリティ上の理由からカレントディレクトリ(.)がPATHに含まれていないため、実行ファイル名だけを入力しても検索対象にならない。「./myscript.sh」のように明示的にパスを指定すれば実行できる。
根拠GNUとUnixのコマンド - 環境変数(PATH)