在可变空间分隔中读取多个值
我有一个存储命令输出的变量。有时命令的输出是单个字,有时输出命令有多个字,空格分开
实施例
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,否则echo ok
提前致谢
答案 0 :(得分:1)
你不应该在MAC=
之后留出空格。
试
awk '{print (NF>1?"not ":"")"ok"}' <<<$MAC
e.g。
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
答案 1 :(得分:1)
如果您想简单地确定$ MAC中是否有空格,您可以这样做:
case $MAC in
*\ * )
echo "not ok"
;;
*)
echo "ok"
;;
esac
答案 2 :(得分:1)
尝试:
if [[ "$MAC" =~ "\s" ]]; then echo not ok; else echo ok; fi
以下将在第一次出现(空格)之前产生字符串:
address=${MAC%% *}