親ディレクトリでのみ.shファイルを実行でき、サブディレクトリでは実行できないのはなぜですか?

親ディレクトリでのみ.shファイルを実行でき、サブディレクトリでは実行できないのはなぜですか?

私はこれがうまくいかないことがわかりました。

/tomcatDirectory/bin $ startup.sh //command not found

しかし、効果があります。

/tomcatDirectory $ bin/startup.sh

私はWindowsに精通しています。作業ディレクトリでは、プログラムを実行できず、親フォルダでのみプログラムを実行できることが私にとっては直観に反しているようです。

ここで何が起こっているのかについての大きな絵は何ですか?

ベストアンサー1

現在のディレクトリ(つまり.)はパスにありません。試してみてください

./startup.sh

次のコマンドを使用してパスを確認できます。

echo ${PATH}

あなたできる.パスに現在のディレクトリ()を追加します。ただし、これは危険と見なされます(特に.他のディレクトリの前に)。コマンドが入力されると、シェルはまず現在のディレクトリからそのコマンドを実行しようとします。これにより、代わりに既存のコンテンツが実行されます。基本一つ。

要約:現在のディレクトリから実行可能ファイルを実行するだけです./

おすすめ記事