2011-02-10 82 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