Como tornar a invocação bash alias condicional em PWD?

5

Atualmente, tenho este alias:

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

Essencialmente, ele chamará o cmake para fazer uma compilação out-of-source do PWD. Funciona bem, mas como está, pode ser executado praticamente de qualquer lugar (o que eu não quero).

Como modifico esse alias para que ele seja executado se e somente se a string bld estiver no meu diretório de trabalho atual?

Eu preciso dessa mudança porque, sem ela, às vezes, acidentalmente, invoco esse comando do diretório tst ou de algum outro diretório onde eu cause uma confusão total.

    
por kfmfe04 16.12.2011 / 17:29

1 resposta

10

De man bash :

For almost every purpose, aliases are superseded by shell functions.

Então, faça disso uma função de shell.

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

É uma expressão regular que você pode ajustar às suas necessidades.

    
por 16.12.2011 / 18:05

Tags