`とは何ですか。/ path / command`しますか?(ドットの後のスペース、絶対パス)


7

このガイドの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を開始しますか?


bashこれは組み込みコマンドなので、manページを読んで、ソースの説明を検索してください。見逃すことはありません。
Anthon 2015

3
.ソースコマンドのショートカットはありますか?」—それは実際には逆.です。コマンドでありsource、互換性エイリアスです(との互換性のためcsh)。source標準のPOSIXボーンシェルには存在せず、にのみ存在することに注意してください.
Celada、2015


多くの場合、単純な場合は非表示のままです...「help」と書くだけの簡単な場合もあります以下を参照してください ;)
Hastur

回答:


14

はい.source機能と同じです。

いつものように、最初のリファレンスは、man bash最初の推測を確認できるマニュアルページです。/ source

... .またはソースで実行されるシェル関数またはスクリプト...

最初のリファレンスですが、少し先にシェル組み込みコマンドのセクションがあります

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

これがbash組み込み関数であるという事実が、ソースに独自のmanページが付属していない理由です。そのため、aproposは失敗しました。


ありがとう、私はパフォーマンスするつもりはなかったでしょうがman bash、それを私の「投稿前に試す」テクニックに追加します。そのページは、レビューして完全に理解するのに数か月かかるようです。私は楽しい時間を過ごしています!
dotancohen 2015

いつものように、最初のリファレンスはman bash?私sshがあまり役に立たないコマンドに問題があるかどうかは確かです。それは最後の手段の参照です。
Anthon 2015

bashスクリプトを作成してオートコンプリートを調査している場合は、そうです。しかし、それは経験の声かもしれません。
HBruijn 2015

dotコマンドはBourneシェルにあり、POSIXシェルで標準化されています。sourceコマンドはCシェルの類似物であり、Bashに追加されました(POSIXでは標準化されていません)。
ジョナサンレフラー、2015

使用できるbash helphelp sourcehelp .
ビルトインに

4

簡単にあなたの答え:

  1. . absolute_path/mycommand ソーススクリプトファイルmycommandディレクトリ内にありますabsolute_path/。詳細については、こちらをご覧ください
  2. はい .source同等です。
  3. 必要に応じて、自問自答helpbash 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します。infoを
使用して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.

「明白なことは、誰かがそれを簡単に表現するまで見られないことです。」K.ギブラン


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.