1

次のコード スニペットと、以下の質問があります。私はUnixにまったく慣れていないので、最初にGoogleで何を検索すればよいかさえわかりません。

./Path は、現在のパスで特定のプログラムを実行することであることも知っています。/PATH 別のディレクトリでプログラムを実行することです。

しかし、どうですか。。/道 ?

if [[ -f ./dbatools.pro ]]; then
        . ./dbatools.pro  -> **what does this do ? I don’t think such a command is possible ?** 
else
        . /app/dbatools/profile/dbatools.pro
fi

echo "Started at `date`"
4

1 に答える 1

3

ドット.コマンドは、「指定されたファイルを現在のスクリプトの一部であるかのように読み取る」ための標準 POSIX シェル(Bourne、Korn、Bash) 表記です。大きな利点は、ファイルが環境変数を設定し、関数を定義でき、シェル スクリプトに影響を与えることです。./dbatools.pro通常、(またはを使用して) 通常のコマンドとしてスクリプトを実行するとsh dbatools.pro、環境変数はスクリプトを実行するシェルにのみ影響し、現在のシェルには影響しません。

テストは、現在のディレクトリに呼び出されたファイルがあるかどうかを確認しますdbatools.pro(したがって./dbatools.pro)。存在する場合は、そのファイルを使用します。存在しない場合は、ファイルを使用します/app/dbatools/profile/dbatools.pro。「ドット」で囲まれたファイルを読み取れない場合は、エラーが発生します。

source ./dbatools.proBash には、代わりに使用できる代替表記法があります。これは C シェルから借用したものです。

.(およびsource、Bash組み込みの) コマンドは、 のディレクトリでプレーン ファイル (. dbatools.proたとえば、)を検索します$PATHが、ファイルは実行可能である必要はありません。読み取り可能である必要があるだけです。

于 2012-09-13T03:36:24.770 に答える