我不太清楚我做错了什么。我尝试运行命令
alias localip='ip -4 -o addr show eth0 | egrep -o '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' | head -n 1'
如果我运行命令
ip -4 -o addr show eth0 | egrep -o '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' | head -n 1
我得到了我期望的结果,但是,当尝试使用该命令创建别名时,我得到了
-bash:意外标记‘(’附近有语法错误
任何帮助都将不胜感激。TIA。
答案1
您将单引号嵌套在单引号中。这样不行。
尝试在内部表达式中使用"
双引号。"
答案2
我发现一个更简洁的解决方案,只需创建一个函数并在该函数之后命名别名,如下所示:
alias localip=GetLocalIP
function GetLocalIP()
{
ip -4 -o addr show eth0 | egrep -o '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' | head -n 1
}