如何使用PWD进行bash别名调用?


5

我目前有这个别名:

alias cmakerel='cmake -DCMAKE_BUILD_TYPE=Release -Wno-dev ../../ && make -j4'

从本质上讲,它会调用cmake来做一个 out-of-source 从PWD建立。它工作正常,但原样,它可以从几乎任何地方运行(我不想要)。

如何修改此别名,以便它当且仅当字符串运行时才运行 bld 在我目前的工作目录中?

我需要这个更改,因为没有它,我有时会意外地从tst目录或其他目录中调用此命令,我只是导致一团糟。

Answers:


10

man bash

对于几乎所有目的,别名都被shell函数取代。

所以把它变成一个shell函数。

function cmakerel {
    if expr match "$PWD" '.*bld.*' >/dev/null ; then
        cmake -D....
    else
        echo "Wrong directory!"
    fi
}

这是一个正则表达式,您可以根据自己的需要进行调整。


棒极了!如果可以,我会给你+5。 TYVM。
kfmfe04

顺便问一下,我应该如何修改 cmakerel 以上是为了在我打电话时返回一些失败值 cmakerel && make check 第二部分没有被告知失败?
kfmfe04

2
@ kfmfe04添加一行 exit $? 以下 cmake 呼叫。然后它将以执行的最后一个命令的退出代码退出。除非您使用管道,否则它很简单。以下 echo 打电话,添加 exit 1
Daniel Beck

太棒了 - 谢谢!添加此作为我刚刚发布的问题的答案,因此我可以向您发送一些要点。
kfmfe04
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.