2010-12-29 2 views

答えて

2

これまでのベストスラッシュ説明。その中のスラッシュとパスを指定する

http://www.linfo.org/dot_slash.html

+1

これはありがたいです.... –

+0

その説明は間違っています。シェルは絶対パスをチェックしません。スラッシュ(相対パスでもよい)が存在するかどうかをチェックするだけです。最初の単語にスラッシュが含まれている場合、$ PATHの検索はスキップされます。 'mkdir tmp;を試してください。 echo '#!/ bin/echo '> tmp/test && chmod + x tmp/test'そして、'。/ 'の先頭に' tmp/test'を実行するだけです。非愚かなexec()呼び出し。そして、それは '。/ script'の仕組みです。スラッシュがあるので、$ PATHは検索されません。 '.'は特別なディレクトリですが、別のディレクトリです。 – dannysauer

2

./は、コマンドを現在のディレクトリ内で実行する必要があることをシェルに伝えます。 Pathで実行しようとしているコマンドがない場合は、シェルに検索する場所を指定する必要があります。現在のディレクトリにある場合は./を使用します。そうでない場合は、完全なパスを指定すると同じことが行われます。

1

すべてのシェルにはPATH環境変数があります。パスは、実行可能ファイルが置かれているディレクトリのリストです。コマンドを入力すると、シェルは定義されたパスでコマンドを探します。

デフォルトでは、現在のディレクトリはパス上にないので、実行可能ファイルの名前を入力すると、その名前で実行可能ファイルがどこかに存在しない限り、見つからないことがあります。 "./"は現在のディレクトリを示します。

0

は、$ PATHを検索するスキップするシェルの原因となります。したがって、(スクリプト名が$ PATHのものと同じ場合に)意図したファイルを実行していることを確認するための特定のパスを指定します。さらに、現在のディレクトリが$ PATHにないので、./を使用します。他の人たちと同じように。 :)

関連する問題