我正在尝试为mysql
命令
如果pwd中存在.my.cnf
,我想自动将--defaults-file=.my.cnf
附加到命令
这是我正在尝试的内容
function mysql {
if [ -e ".my.cnf" ]; then
/usr/local/bin/mysql --defaults-file=.my.cnf "$@"
else
/usr/local/bin/mysql "$@"
fi
}
我的想法是,我希望能够像以前一样使用mysql
命令 ,只有.my.cnf
文件存在时,才能将其附加为一个论点
问题:这种方法会遇到什么问题吗?有没有更好的方法呢?
如果我手动指定--defaults-file=foo.cnf
,则应使用该.my.cnf
代替{{1}}。
答案 0 :(得分:4)
你写的函数完全没问题。这是一个触摸DRYer:
function mysql {
if [ -e ".my.cnf" ]; then
set -- --defaults-file=.my.cnf "$@"
fi
/usr/local/bin/mysql "$@"
}
set
命令将my.cnf参数放在命令行参数的开头
仅当选项不存在时才会出现:
function mysql {
if [[ -e ".my.cnf" && "$*" != *"--defaults-file"* ]]; then
set -- --defaults-file=.my.cnf "$@"
fi
/usr/local/bin/mysql "$@"
}