ポイント(.)がソースのエイリアスとして使用されるのはなぜですか。他のコマンドにショートカットがないのはなぜですか? [閉鎖]

ポイント(.)がソースのエイリアスとして使用されるのはなぜですか。他のコマンドにショートカットがないのはなぜですか? [閉鎖]

編集する:実際にはエイリアスではありません(回答を参照)。

私たちが知っているように、シェルのドットコマンド(.)はソースコマンドのエイリアスです。

ところで、このような奇妙なニックネームの後ろに隠れた理由があるのだろうか。当然頻繁に使用しないので、このように短いエイリアスが必要です。

それでは、ポイントを追加するのはなぜですか?あるいは、sourceより一般的に使用されるコマンドの代わりになぜ必要なのですか?エイリアスがなぜ必要ですか?これの背後に妥当な理由はありますか?それとも歴史的な理由がありますか?cdls

メモ:この質問はもともとサーバーエラーに投稿しましたが、ここに投稿しようという提案を受けました。

答え1

.~であるPOSIX規格

sourcebashの組み込み同義語で、.次のように異なります。.

また、Bash リファレンスマニュアルには以下が.リストされています。4.1 Bourne Shellの組み込み機能source下の並置4.2 Bash 組み込みコマンドように:

同義語。 (Bourne Shellの組み込み機能を参照)

sourceおそらくCシェル(コマンドが派生したように見えます)でbashと呼ぶので、名前はbashとして指定されているようです。

答え2

Bashに関する限り、どちらか一方のエイリアス.ではなくsource、両方が同じ基本関数を呼び出す組み込み関数であることは単純な事実ですsource_builtin

source.defBashソースコードのファイルを見てください。

$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注:なぜ名前がそのように指定されたのかを伝えることができます。このコマンドは以前に呼び出されましたが、chdir1974年にリリースされた110ボードモデムに比べて長すぎて入力速度が遅くなりました。

関連情報