使用Awk和ifconfig定义UNIX别名和/或函数

时间:2015-08-17 20:19:32

标签: linux bash shell unix awk

我有以下命令向我显示我当前的IP地址:

ifconfig -a | awk 'BEGIN { count=0; } { if ( $1 ~ /inet/ ) { count++; if( count==2 ) { print $2; } } }'

我希望能够将此命令包装到别名中,例如:

alias myip="ifconfig -a | awk 'BEGIN { count=0; } { if ( $1 ~ /inet/ ) { count++; if( count==2 ) { print $2; } } }'"

甚至是这样的函数:

function myip() { ifconfig -a | awk 'BEGIN { count=0; } { if ( $1 ~ /inet/ ) { count++; if( count==2 ) { print $2; } } }' }

但是,这些解决方案都不起作用,我收到了这个错误:

syntax error near unexpected token ``{ifconfig'

我试过这个:

alias myip='ifconfig -a | awk '\''BEGIN{ count=0; } { if ( $1 ~ /inet/ ) { count++; if( count==2 ) { print $2; } } }'\'''

但没有运气。

我怎样才能完成这项任务?

1 个答案:

答案 0 :(得分:1)

1)您的功能在结束;

之前需要}
function myip() { ifconfig -a | awk 'BEGIN { count=0; } { if ( $1 ~ /inet/ ) { count++; if( count==2 ) { print $2; } } }'; }
                                                                                                                  HERE --^

2)您只需要function(),但需要not both。 (虽然这取决于你的shell。)

function myip { ifconfig -a | awk 'BEGIN { count=0; } { if ( $1 ~ /inet/ ) { count++; if( count==2 ) { print $2; } } }'; }

3)在您尝试功能之前,您可能没有unalias您之前的尝试

unalias myip

进行这些更改后,该函数应该没有语法错误。