Alias de bash com tubulações

4

Eu não sei exatamente o que estou fazendo de errado com este. Estou tentando executar o comando

alias localip='ip -4 -o addr show eth0 | egrep -o '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' | head -n 1'

Se eu executar o comando

ip -4 -o addr show eth0 | egrep -o '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' | head -n 1

Eu obtenho o resultado que espero, no entanto, ao tentar criar um alias com o comando, recebo

-bash: syntax error near unexpected token '('

Qualquer ajuda seria apreciada. TIA.

    
por n8felton 01.04.2012 / 00:02

2 respostas

5

Você está aninhando aspas simples entre aspas simples. Isso não funciona.

Tente usar " aspas duplas " na expressão interna.

    
por 01.04.2012 / 00:09
6

Eu encontrei uma solução muito mais limpa para criar uma função e nomear seu alias após a função, assim:

alias localip=GetLocalIP

function GetLocalIP()
{
   ip -4 -o addr show eth0 | egrep -o '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' | head -n 1
}
    
por 10.10.2013 / 21:04

Tags