5

В настоящее время у меня есть этот псевдоним:

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

По сути, он будет вызывать cmake для сборки из PWD out-of-source . Он отлично работает, но как есть, он может быть запущен практически из любого места (что я не хочу).

Как мне изменить этот псевдоним так, чтобы он работал тогда и только тогда, когда строка bld находится в моем текущем рабочем каталоге?

Мне нужно это изменение, потому что без него я иногда случайно вызываю эту команду из каталога tst или из другого каталога, где я просто вызываю полный беспорядок.

1 ответ1

11

От man bash:

Почти для любых целей псевдонимы заменяются функциями оболочки.

Так что сделайте это функцией оболочки.

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

Это регулярное выражение, которое вы можете приспособить к вашим потребностям.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .