在分隔的变量空间中读取多个值
我有一个存储命令输出的变量。有时命令的输出是单个单词,有时输出命令是多个单词,空格分隔
例子
MAC= 00:1c:c4:5b:6e:fe 00:1c:c4:5b:6e:fe 00:1c:c4:5b:6e:fe 00:1c:c4:5b:6e:fe
echo $MAC
我想使用如下 if 语句
如果 $mac 有多个单词则 echo not ok else echo ok
提前致谢
尝试:
if [[ "$MAC" =~ "\s" ]]; then echo not ok; else echo ok; fi
以下将在第一次出现(空白)之前产生字符串:
address=${MAC%% *}
你不应该在MAC=
.
尝试
awk '{print (NF>1?"not ":"")"ok"}' <<<$MAC
例如
kent$ MAC="00:1c:c4:5b:6e:fe 00:1c:c4:5b:6e:fe 00:1c:c4:5b:6e:fe 00:1c:c4:5b:6e:fe"
kent$ awk '{print (NF>1?"not ":"")"ok"}' <<<$MAC
not ok
如果您想简单地确定 $MAC 中是否有空格,您可以执行以下操作:
case $MAC in
*\ * )
echo "not ok"
;;
*)
echo "ok"
;;
esac