我有别名:alias gwanip=echo "$(dig +short myip.opendns.com @resolver1.opendns.com)。这工作正常,但我刚刚意识到它在每次获取 bashrc 时都会执行命令 dig。我如何保持它的功能(即回显我的 ip 调用 gwanip)但每次 bashrc 都没有运行它?
转义美元符号,或删除无用的,echo $( ... )然后拥有
alias gwanip="dig +short myip.opendns.com @resolver1.opendns.com"
Run Code Online (Sandbox Code Playgroud)
或者改用 shell 函数:
function gwanip {
dig +short myip.opendns.com @resolver1.opendns.com
}
Run Code Online (Sandbox Code Playgroud)
使用 shell 函数,您甚至可以创建一个更通用的 shortdig函数并调用它。
function shortdig {
dig +short "$1" "$2"
}
function gwanip {
shortdig "myip.opendns.com" "@resolver1.opendns.com"
}
Run Code Online (Sandbox Code Playgroud)
该bash手册包含的声明
对于几乎所有目的,别名都被 shell 函数取代。