我想检查 IP 分配的方法,如下所示这问题。我在 Ubuntu 12.04 上的 bash 中运行它。我的问题是函数“get_con_id()”在 if 子句中给出“语法错误”。脚本如下(未修改给定问题的答案):
#!/bin/sh
# get the connection id of the active connection
get_con_id() {
nm-tool |
awk '
$1 == "-" {
dev = $3
id = dev
if (NF > 4 && match($0, "\\[(.*)\\]", a))
id = a[1]
}
/^ / && $1 == "State:" && $2 == "connected" {
print id
}'
}
# get the address type of the active connection
nmcli con list id "$(get_con_id)" |
awk '
$1 == "ipv4.method:" {
if ($2 == "manual")
print "static"
else if ($2 == "auto")
print "dynamic"
else
print "unknown"
}'
答案1
您正在使用mawk
但该脚本需要gawk
。
sudo apt-get install gawk
它会自动重置awk
为,gawk
以便脚本可以正常工作。如果它不会重置,则只需将awk
脚本中的每个更改为gawk
。