我有别名:alias gwanip=echo "$(dig +short myip.opendns.com @resolver1.opendns.com)
。这工作得很好,除了我刚刚意识到它每次获取 bashrc 时都会执行命令 dig 。如何保持它的功能(即回显我的 ip 调用 gwanip),但每次 bashrc 来源时都不运行它?
答案1
逃避美元符号,或者删除无用的部分echo $( ... )
,然后就可以了
alias gwanip="dig +short myip.opendns.com @resolver1.opendns.com"
或者使用 shell 函数代替:
function gwanip {
dig +short myip.opendns.com @resolver1.opendns.com
}
使用 shell 函数,您甚至可以创建一个更通用的shortdig
函数并调用它。
function shortdig {
dig +short "$1" "$2"
}
function gwanip {
shortdig "myip.opendns.com" "@resolver1.opendns.com"
}
手册bash
包含以下声明
对于几乎所有用途,别名都被 shell 函数取代。
答案2
摆脱美元符号就可以了。