O problema é que a ( intenção awk
variable) $NF
está sendo expandida pelo shell em alias
tempo de declaração, não quando chamado posteriormente. Então, o alias
está sendo eventualmente declarado como:
alias ipconfig="ip route get 8.8.8.8 | awk '{print}'"
e isso vai print
o registro inteiro, obviamente.
Você precisa evitar a expansão prematura por qualquer mecanismo de escape usual, aqui estou usando a barra invertida - \
:
$ alias ipconfig="ip route get 8.8.8.8 | awk '{print \$NF}'"
$ ipconfig
192.168.2.6
Ou, se você se sentir vantajoso, poderá jogar com os hacks de citação simples feios :
$ alias ipconfig='ip route get 8.8.8.8 | awk '\''{print $NF}'\'''
$ ipconfig
192.168.2.6
Como uma nota lateral, você deve apenas alias
ao fazer substituições simples, para casos complexos, você deve realmente olhar para alavancar funções, elas são muito mais legíveis e confiáveis. Por exemplo, este pode simplesmente ter o seguinte formato (esqueça as citações e outros hacks):
$ ipconfig() { ip route get 8.8.8.8 | awk '{print $NF}' ;}
$ ipconfig
192.168.2.6