実行する必要があるいくつかのコマンドの先頭に追加のポイントがあるのはなぜですか?

実行する必要があるいくつかのコマンドの先頭に追加のポイントがあるのはなぜですか?

weblogicサーバーのインストールパッケージをダウンロードしました。 README では、次のコマンドを実行する必要があります。

Linux/Mac
$ . ./configure.sh

こんなことが起きているのを見たのは今回が初めてではありません。コマンドの先頭に余分な点があるのはなぜですか?ただ、./configure.sh結果は同じです。

ベストアンサー1

ドット(.)はファイル内でコマンドを実行するためのシンボルで、ドットに引数として与えられます。たとえば、このファイルの内容は./configure.sh現在のシェルで実行されます。 dot コマンドは Bourne シェルから始まり、Bash などの他のシェルでも使用できます。

Bashのマニュアルページから

    .  filename [arguments]
source filename [arguments]
    Read  and  execute  commands from filename in the current shell
    environment and return the exit status of the last command executed from
    filename.  If filename does not contain a slash, file names in PATH are  used
    to  find  the directory  containing  filename.  The file searched for in PATH
    need not be executable.  When bash is not in posix mode, the current directory
    is searched if no file is found in PATH.   If  the  sourcepath  option  to  the
    shopt builtin  command  is  turned  off, the PATH is not searched.  If any
    arguments are supplied, they become the posi‐ tional parameters when filename
    is executed.  Otherwise the positional parameters are unchanged.  The return
    status is the status of the last command exited within the script (0 if no
    commands are executed), and false if filename is not found or cannot be read.

メモ:commandなどの他のシェルにもcsh同様のコマンドがあり、sourceより新しいバージョンがドット表記とコマンドをサポートしていますsource。 Bashは実際に両方をサポートしています。

はい

$SOMEVAR以下は、変数を定義するファイルをインポートして現在のシェルで変数を設定する例です。

サンプルファイルは次のとおりです。

$ cat test.sh 
SOMEVAR="hi"

$SOMEVARまず、変数が現在シェルにすでに設定されていないことを確認してください。

$ echo $SOMEVAR

$

次に、それをインポートして設定されていることを確認します。

$ . ./test.sh 
$ echo $SOMEVAR
hi

移植性

この点に言及してくれた@ChrisDownに感謝します。点(.)はPOSIXの一部として指定されるため、移植可能ですが、コマンドはsourceそうではありません。ここを見てくださいOpen Group基本仕様7号文書、セクション:「2.シェルコマンド言語」。特にこのセクション。

抜粋

名前

ポイント - 現在の環境でコマンドを実行します。

要約

。文書

説明する

シェルは現在の環境でファイルのコマンドを実行する必要があります。

ファイルが含まれていない場合、シェルはPATHで指定された検索パスを使用してファイルを含むディレクトリを見つけます。ただし、通常のコマンド検索とは異なり、ドットユーティリティで検索したファイルは実行可能である必要はありません。読み取り可能なファイルがないと、非対話型シェルは中断されます。対話型シェルは標準エラーに診断メッセージを記録する必要がありますが、この場合は構文エラーと見なすべきではありません。

おすすめ記事