Aliasing um comando com parâmetros especiais [duplicado]

1

Gostaria de ter um alias para o seguinte código: -

g++ *.cc -o * 'pkg-config gtkmm-3.0 --cflags --libs';

mas eu quero que, quando eu inserir o alias, ele seja seguido pelo nome do arquivo *.cc e, em seguida, pelo nome do programa compilado * .

por exemplo:

gtkmm simple.cc simple

deve ser executado

g++ simple.cc -o simple 'pkg-config gtkmm-3.0 --cflags --libs'
    
por Aditya ultra 24.05.2015 / 16:21

1 resposta

3

O que você precisa não é um apelido, mas uma função. Os aliases não suportam parâmetros da maneira que você deseja. Terminaria apenas anexando os arquivos, gtkmm simple.cc simple terminaria como:

g++ -o 'pkg-config gtkmm-3.0 --cflags --libs' simple.cc simple

e não é isso que você tenta alcançar. Em vez disso, uma função permite:

function gtkmm () {
    g++ "$1" -o "$2" 'pkg-config gtkmm-3.0 --cflags --libs'
}

Aqui, $ 1 e $ 2 são o primeiro e o segundo argumentos. $ 0 é o próprio chamador:

gtkmm simple.cc simple
$0    $1        $2

Você pode testar a função usando echo .

Você pode encontrar mais funcionalidades sobre funções no manual on-line do Bash .

    
por 24.05.2015 / 16:32