Gerando servidores PID of Rails com ps aux | grep - quebra quando colocado em um pseudônimo?

1

Estou tentando criar um alias para um comando desajeitado que estou usando para gerar o PID e algumas outras informações sobre dois servidores Rails que estou executando.

Quando eu simplesmente executo o comando no terminal (sobre o ssh):

vagrant@Railsvr:~$ ps aux | grep rails | grep -v grep | awk '{print $2, $12, $13, $14, $15}' 

Eu recebo as informações desejadas:

3266 bin/rails server -dp 3000
3383 bin/rails s -dp 4000

Mas quando eu coloco em um alias em ~ / .bash_aliases (que está incluído em ~ / .bashrc)

alias findrails_pid="ps aux | grep rails | grep -v grep | awk '{print $2, $12, $13, $14, $15}'"

e fonte:

. ~/.bashrc

Ele quebra ... eu recebo:

vagrant@Railsvr:~$ findrails_pid 
awk: {print , 2, 3, 4, 5}
awk:        ^ syntax error

É como se o $ n, que representa colunas do comando ps aux, estivesse sendo arrancado por algum motivo. Este é o primeiro alias que eu tentei criar - estou faltando alguma coisa?

Não tenho certeza se isso é importante - o sistema é uma caixa guest do ubuntu precise32 hospedada pelo libvirt-kvm em um host Debian 8.1.

    
por tastyCIDR 25.08.2015 / 20:02

1 resposta

6

Uma função provavelmente seria melhor, sim, mas neste caso o problema provavelmente é porque você está usando aspas duplas em torno dela. As variáveis $ são expandidas antes da atribuição ao alias. Você pode usar uma aspa simples do lado de fora, ou, porque você já tem aspas simples, escape do $ com \:

alias findrails_pid="ps aux | grep rails | grep -v grep | awk '{print \, \, \, \, \}'"
    
por 25.08.2015 / 20:22