![bash_aliases と "if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi" の意味](https://linux33.com/image/204004/bash_aliases%20%E3%81%A8%20%22if%20%5B%20-f%20~%2F.bash_aliases%20%5D%3B%20then%20.%20~%2F.bash_aliases%20fi%22%20%E3%81%AE%E6%84%8F%E5%91%B3.png)
私のファイルには私が理解していない小さな部分がありますが、.bashrc
その意味と構文の説明を聞きたいです。
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
私は確かに#が各行をコメントアウトすることを理解しています。
if ... then
この言葉を私に説明してもらえますか?どういう-f
意味ですか?
[]
コードの最初の行になぜこれがありますか?
;
なぜ後ろに1つありますか[ -f ~/.bash_aliases ]
?
コードの2行目が始まる理由.
と、2行目全体が実際に何を意味するのですか?私はLinuxにbash_aliasesを含むファイルがあることを知っていますが、.bash_aliases
2行目を理解していません。
答え1
if ... then
この言葉を私に説明してもらえますか?つまり、
.bash_aliases
ホームディレクトリにファイル名がある場合は、そのファイルを使用します。どういう
-f
意味ですか?:ファイルが存在し、通常のファイル(ディレクトリなどではない)か、通常のファイルへのシンボリックリンクかをテストします。
[]
コードの最初の行になぜこれがありますか?テストの実行に使用されるシェルコマンドです。別の方法は
if test -f .bash_aliases; then
;
なぜ後ろに1つありますか[ -f ~/.bash_aliases ]
?セミコロンは bash のコマンド区切り文字です。
test
コマンドを終了し、then
ブロックを同じ行で開始できるようにするには、この情報が必要です。あるいは、区切り文字としての使用を避け、
;
改行文字を使用してコマンドを明示的に分割することもできます。if [ -f ~/.bash_aliases ] then
コードの2行目がaで始まる理由
.
と実際の意味実行するコマンドの名前です。 (ドット)コマンドは、
.
ファイル検索用のシェル組み込みコマンドです。bash
ファイルが実行されるという合理的な仮定により、.bashrc
読みやすくなりますが、POSIX以外のコマンドを代わりに使用できます。source
.
source ~/.bash_aliases
一部のシェル(dash
一部のバリアントなど)はksh
これをサポートしていませんsource
。
読みたいかもしれませんバッシュ文書。