我目前有这个别名:
alias cmakerel='cmake -DCMAKE_BUILD_TYPE=Release -Wno-dev ../../ && make -j4'
本质上,它将调用 cmakeout-of-source
从 PWD 进行构建。它工作正常,但就其本身而言,它可以从几乎任何地方运行(我不想要)。
我如何修改此别名,以便只有当字符串bld
位于我当前的工作目录中时它才运行?
我需要这个改变,因为如果没有它,我有时会意外地从 tst 目录或其他目录调用这个命令,从而造成一片混乱。
答案1
从man bash
:
对于几乎所有用途来说,别名都被 shell 函数所取代。
因此使其成为一个 shell 函数。
function cmakerel {
if expr match "$PWD" '.*bld.*' >/dev/null ; then
cmake -D....
else
echo "Wrong directory!"
fi
}
这是一个正则表达式,您可以根据自己的需要进行调整。