「ソース」と「。」の違いは何ですか?


147

スクリプト(たとえば、/いくつか/スクリプト)を実行するとの違いは何であるsource /some/scriptと. /some/scriptバッシュには?

回答:


134

sourceと.に同義であるバッシュ。

コマンドが単なる同義語であり、それ以上ではないことを確認したい場合は、バージョン4.3のソースコードを見て、ファイルを調べてくださいbuiltins/source.def。あなたは、組み込みコマンドの両方のことを読んで、だろうsourceと.、非常に同じ機能を使用しますsource_builtin。


これはどこで定義されていますか?ということです。ソースのエイリアスか、これは何か他のものですか?
— binW

まったく同じこと

12
@binW:.古代のボーンシェルから継承された従来のソースコマンドです。sourceは.、おそらくより読みやすいためとまったく同じように機能する単なるbashビルトインです(.小さなフォントでは単独で見つけるのは難しいかもしれません)。あなたはわかりますhelp sourceし、help .同じ情報を表示します。
— ガイラ

3
@binW:探してman bashから検索すると、それがの同義語でsourceあることがわかります。source filename [arguments]. filename [arguments]
— マシューランキン

46

.sourcebash と同義ですが、POSIX shではそうではないため.、スクリプトが/ bin / shで実行される場合に使用する必要があります。bashは、/ bin / shとして呼び出されたときにPOSIX shのように動作すると主張しますが、source文句なしに受け入れます。

この振る舞いは私に噛みつきました。例えば、bashを/ bin / shとしてテストしたスクリプトは、ashの下で実行すると失敗します。


16
POSIXはシェルを制限しません。POSIXは言うだけです。シェルは、少なくともこの機能とその機能をサポートする必要があります。そのため、POSIXシェルは、POSIXで説明されている機能が実装されている限り、追加機能を自由に実装できます。シェバンが#!/bin/sh、シェルがPOSIX機能以外をサポートしていると決して仮定すべきではないと言っているとき。pubs.opengroup.org/onlinepubs/9699919799/utilities/...
— geirha

名前の検索
— q

3
shはcronでよく使用されるため、この答えは私を助けてくれました。
— dfrankow
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.