. とはどういう意味ですか? /path/command`は何をしますか? (ドットの後の空白、絶対パス)

. とはどういう意味ですか? /path/command`は何をしますか? (ドットの後の空白、絶対パス)

~からこのBash完了ガイドBashがオートコンプリートを実行するには、以下を実行する必要があることを学びました. /etc/etc/bash_completion.d/foobar以来、空間に注目.) Bash がタスクを実行できるようにします。

$ /etc/bash_completion.d/ssh
bash: /etc/bash_completion.d/ssh: Permission denied
$ . /etc/bash_completion.d/ssh
$ ls -l /etc/bash_completion.d | grep ssh
-rw-r--r-- 1 root root   297 Jan 28 18:04 ssh

コマンド.のショートカットですかsourceそうでなければ何ですか? Google検索は不可能で、man source何も返さず、私が探しているものがあるかどうかわからないほど無関係な情報をapropos source提供しすぎます。info sourceこの質問に対する答えを直接見つけるためにRTFMを起動するにはどうすればよいですか?

答え1

.機能と同じですsource

いつものように、最初の参考資料は次のとおりです。man bashマニュアルページで以下を検索して初期推測を確認できます。/ source

...またはソースを使用して実行されるシェル関数またはスクリプト....

最初の参照ですが、さらにはセクションを見つけることができます。シェル組み込みコマンド

. filename [arguments]
source filename [arguments]
現在のシェル環境でfilenameのコマンドを読み取り、実行し、filenameで最後に実行されたコマンドの終了ステータスを返します。ファイル名にスラッシュが含まれていない場合は、PATHのファイル名を使用してファイル名を含むディレクトリを見つけます。 PATHで検索されたファイルは実行可能である必要はありません。 Bash が posix モードでない場合、PATH でファイルが見つからない場合は、現在のディレクトリを検索します。 shopt 組み込みコマンドの sourcepath オプションがオフの場合、PATH は検索されません。引数が指定されると、filenameが実行されたときに位置引数になります。それ以外の場合、位置パラメータは変更されずにそのまま残ります。戻り状態はスクリプトの最後の終了コマンド状態(コマンドが実行されていない場合は0)で、ファイル名が見つからないか読み取れない場合はfalseです。

実際、これはbashが組み込まれているため、ソースコードに独自のマニュアルページがなく、これが失敗する理由です。

答え2

あなたの簡単な答え:

  1. . absolute_path/mycommand 源泉mycommandディレクトリのスクリプトファイルabsolute_path/。さらなる参考のためにここを読んでください
  2. はい .そしてsource同等です。
  3. 必要に応じてお問い合わせくださいhelp私にbash shell。組み込みコマンドに答えを得ることができます。

いくつかの言葉を教えてください
最も簡単な方法は、最もわかりにくい方法です。私たちは質問できないと思います。help到着シェルコマンドが内部的に定義されている場合。
それから私たちはそれが次のようになることがわかりますtype .type source組み込み注文する。

Hastur@Cthulhu:~> type . source  
. is a shell builtin  
source is a shell builtin

それがわかったら、help私たちは彼らに関する情報をすばやく得ることができます。プロンプトにパラメーターがないコマンドは、
以下を提供します。help

GNU Bash、バージョン4.1.2(1)...
これらのシェルコマンドは内部的に定義されます。
タイプhelpこのリストを確認してください。help nameこの機能の詳細については、入力してください。名前。シェルに関するより一般的な情報を
表示するには、このリストに含まれていないコマンドに関する詳細情報を見つけるには、情報を使用します。info bash
man -k' or

あなたもhelp .同じhelp sourceことを得ますまったく同じ助ける:

source: source filename [arguments]
Execute commands from a file in the current shell.

Read and execute commands from FILENAME in the current shell.  The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.

Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.

「誰かが単に表現しない限り、私たちはこれを決して見ることができないことは明らかです」ジブラン

答え3

ドット「.」は、現在のシェルコンテキストのファイル名パラメータからコマンドを読み込んで実行することを意味します。ソースコードと同じです。このスタイルはBourne Shellから来ました。 http://ss64.com/bash/source.html

関連情報