「.」を使ってもいいですか? UbuntuとOS Xの.bashrcでソースコードの代わりにファイルを実行しますか?

「.」を使ってもいいですか? UbuntuとOS Xの.bashrcでソースコードの代わりにファイルを実行しますか?

いいですね。source現在のシェルで別々にスクリプトを実行してください.。詳細についてはをご覧ください。「。」そして「ソース」を使ってスクリプトを実行します。たとえば、しかし具体的に私の場合.bashrc私が持っているファイル:

[ -f ~/.bash_aliases ] && source ~/.bash_aliases
[ -f ~/.git-completion.bash ] && source ~/.git-completion.bash
[ -s ~/.autojump/etc/profile.d/autojump.sh ] && source ~/.autojump/etc/profile.d/autojump.sh

次に変更できます。

[ -f ~/.bash_aliases ] && . ~/.bash_aliases
[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash
[ -s ~/.autojump/etc/profile.d/autojump.sh ] && . ~/.autojump/etc/profile.d/autojump.sh

OS Xで動作しますか?これが「POSIX」の問題ですか?

私はそれを試してみましたが、上記はまだUbuntuで動作しているようです(したがって、彼らは実際にandで動作しますsource.つまり、シェルで必要な機能を提供します)。これらのいずれかを選択する必要がありますか、それとも何か抜けましたか?

.bashrcFWIW、OS Xで.bash_profile

ベストアンサー1

でとbash.同義語sourceです。bashソースコードファイルを見ると、同じ内部関数を表示して使用できますbuiltin/source.def.sourcesource_builtin

$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.

ただし、sourcePOSIXと互換性がないため、POSIXを使用してスクリプトを呼び出す場合は、代わりに/bin/sh使用する必要があります。 POSIXはシェルを制限しないので、上記のすべてのスクリプトが機能します。.source

個人的に私はいつも。.代わりに.を使用しますsource(私が書いた多くのスクリプトは.で実行されますcron)。

おすすめ記事