如果我有以下功能:
function getIP() {
local ip=$(cat /etc/hosts | awk '/${1:-domain}/{print $1}')
echo "$ip"
}
如何防止'print $ 1'中的$ 1成为传递给函数的参数?
所以基本上我想打电话给它,得到类似的东西:cat /etc/hosts | awk '/domain/{print $1}'
但我现在使用默认参数获取:cat /etc/hosts | awk '/domain/{print }'
并使用传递的参数:cat /etc/hosts | awk '/test/{print test}'
我试图逃避它,但这给了我一个bash错误:
awk: /${1:-domain}/{print \$1}
awk: ^ backslash not last character on line
答案 0 :(得分:1)
您可以使用:
getIP() {
awk -v h="${1:-domain}" '$0 ~ h{print $1}' /etc/hosts
}
awk
使用-v varname=value
ip
echo