編集する:実際にはエイリアスではありません(回答を参照)。
私たちが知っているように、シェルのドットコマンド(.
)はソースコマンドのエイリアスです。
ところで、このような奇妙なニックネームの後ろに隠れた理由があるのだろうか。当然頻繁に使用しないので、このように短いエイリアスが必要です。
それでは、ポイントを追加するのはなぜですか?あるいは、source
より一般的に使用されるコマンドの代わりになぜ必要なのですか?エイリアスがなぜ必要ですか?これの背後に妥当な理由はありますか?それとも歴史的な理由がありますか?cd
ls
メモ:この質問はもともとサーバーエラーに投稿しましたが、ここに投稿しようという提案を受けました。
答え1
.
~であるPOSIX規格。
source
bashの組み込み同義語で、.
次のように異なります。.
また、Bash リファレンスマニュアルには以下が.
リストされています。4.1 Bourne Shellの組み込み機能source
下の並置4.2 Bash 組み込みコマンドように:
同義語。 (Bourne Shellの組み込み機能を参照)
source
おそらくCシェル(コマンドが派生したように見えます)でbashと呼ぶので、名前はbashとして指定されているようです。
答え2
Bashに関する限り、どちらか一方のエイリアス.
ではなくsource
、両方が同じ基本関数を呼び出す組み込み関数であることは単純な事実ですsource_builtin
。
source.def
Bashソースコードのファイルを見てください。
$PRODUCES source.c
$BUILTIN source
$FUNCTION source_builtin
$SHORT_DOC 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.
$END
$BUILTIN .
$DOCNAME dot
$FUNCTION source_builtin
$SHORT_DOC . 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.
$END
引用する
答え3
ドットコマンドはおそらく1976年にBourne Shellによって導入されました。
sourceコマンドは1977年または1978年にcshによって導入されました。
したがって、「発明」はエイリアス関係がなく、同時に2つの異なる名前を持っています。
cd
注:なぜ名前がそのように指定されたのかを伝えることができます。このコマンドは以前に呼び出されましたが、chdir
1974年にリリースされた110ボードモデムに比べて長すぎて入力速度が遅くなりました。