Aliases - capaz de transmitir argumentos?

4

Eu quero fazer um alias no meu arquivo .bashrc ou .bashrc_aliases (provavelmente o último). Especificamente, quero chamar o comando clang do meu arquivo * .c que estou escrevendo. O que estou procurando é melhor resumido se eu fornecer um exemplo:

Eu tenho programa1.c escrito Eu quero ser capaz de digitar (no terminal) compile program1 , e algo como o seguinte deve ser executado:

clang -ggdb -std=c99 -Wall -Werror   program1.c -lcrypt -lcs50 -lm -o program1

Para aqueles que participaram da classe CS50 da Harvard, você reconhecerá isso como seu comando make . Então, se o acima é impossível, e você sabe outra maneira de fazer isso acontecer, eu sou todo ouvidos. Eu estou tentando evitar o uso de sua VM, como meu netbook não é realmente par para lidar com uma VM.

    
por RyanLC 17.11.2012 / 22:24

1 resposta

6

Não, você não pode transmitir argumentos para um alias. Mas você pode definir uma função:

compile() { 
  clang -ggdb -std=c99 -Wall -Werror .c -lcrypt -lcs50 -lm -o  ;
}

(você pode colocar tudo em uma linha, se desejar, apenas preste atenção ao ponto-e-vírgula no final do comando)

Isso funcionará como pretendido e é o idioma recomendado que deve substituir os aliases para todos os fins, exceto os triviais.

Mas talvez o que você realmente precise seja de um Makefile?

    
por January 17.11.2012 / 22:31