2011-02-10 113 views

回答

79

source /whatever/file(或. /whatever/file)添加到.bashrc您希望包含其他文件的位置。

+16

你應該妥善處理不存在。例如,檢查是否存在(test -r path && path)或忽略錯誤(path 2>/dev/null) – 2011-02-10 15:03:28

+1

@William Pursell IMO更容易測試一次,然後編寫案例代碼,99.99%從未發生。 – Daniel 2013-01-10 09:25:44

+3

@Daniel我不同意。事情發生的時間有0.01%,可能每秒發生數千次。並且在NFS掛載的$ HOME上有一個.bashrc可能意味着源文件的失敗率遠高於.01% – 2013-01-10 11:53:44

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