実行可能なスクリプトを実行するために./filenameが必要なのはなぜですか? [コピー]

実行可能なスクリプトを実行するために./filenameが必要なのはなぜですか? [コピー]

私のホームディレクトリにPythonスクリプトファイルtest.pyを作成して実行してchmod +x test.py実行可能にし、ファイルヘッダーに配置したら、次のようにOS Xでスクリプトを実行#!usr/bin/envできるようにしたいです。bash

$ test.py

しかし、bash以下を返します。

-bash: test.py: command not found

次のコマンドが有効です。

$ ./test.py

この実行可能スクリプトに現在の作業ディレクトリの相対パスが必要なのはなぜですか?

ベストアンサー1

シェルで実行コマンドを実行すると、プログラムの実行パス($ PATH)が検索されます。コマンドの前にパス(./など)を付けると、シェルが検索するのを防ぎ、明示的に指定された特定のプログラムを使用するようにシェルに指示します。

プログラムが検索パスにないディレクトリにある場合は、プログラムパスを明示的に表示する必要があります。

おすすめ記事