我有一些我想在.bashrc中執行的東西,我希望存在於系統上的另一個文件中。我怎樣才能將這個文件包含到.bashrc中?在.bashrc中包含額外的文件
46
A
回答
79
將source /whatever/file
(或. /whatever/file
)添加到.bashrc
您希望包含其他文件的位置。
28
爲防止出現錯誤,您需要首先檢查以確保文件存在。然後源文件。做這樣的事情。
# include .bashrc if it exists
if [ -f $HOME/.bashrc_aliases ]; then
. $HOME/.bashrc_aliases
fi
2
如果您有多個要加載的文件可能存在或可能不存在,可以使用for循環來保持它的優雅。
files=(somefile1 somefile2)
path="$HOME/path/to/dir/containing/files/"
for file in ${files[@]}
do
file_to_load=$path$file
if [ -f "$file_to_load" ];
then
. $file_to_load
echo "loaded $file_to_load"
fi
done
輸出將如下所示:
$ . ~/.bashrc
loaded $HOME/path/to/dir/containing/files/somefile1
loaded $HOME/path/to/dir/containing/files/somefile2
0
我更喜歡先查看版本和路徑配置變量賦值:
if [ -n "${BASH_VERSION}" ]; then
filepath="${HOME}/ls_colors/monokai.sh"
if [ -f "$filepath" ]; then
source "$filepath"
fi
fi
你應該妥善處理不存在。例如,檢查是否存在(test -r path && path)或忽略錯誤(path 2>/dev/null) – 2011-02-10 15:03:28
@William Pursell IMO更容易測試一次,然後編寫案例代碼,99.99%從未發生。 – Daniel 2013-01-10 09:25:44
@Daniel我不同意。事情發生的時間有0.01%,可能每秒發生數千次。並且在NFS掛載的$ HOME上有一個.bashrc可能意味着源文件的失敗率遠高於.01% – 2013-01-10 11:53:44