当我使用以下echo语句时,我得到一个很好的输出,这是从这三个单独的echo语句中得到的结果:
echo AP $macaddr
echo noise floor $noise
echo $channel
输出:
AP ac:67:06:30:eb:00,
noise floor -96
channel=1
但是当我将所有三个改为单个'echo'语句时,输出会中断。
echo AP $macaddr noise floor $noise $channel
输出:
channel=06:30:eb:00, noise floor -96
在此输出中,我没有看到通道和MAC地址缺少其第一个八位字节中的两个。 是什么造成的?怎么能避免这个?
答案 0 :(得分:5)
我不知道频道来自哪里,但是在$ channel或者$ $噪音开始时是否存在虚假的'CR'? 尝试做:
channel=`echo $channel | tr -d '\r'`
noise=`echo $noise | tr -d '\r'`
echo AP $macaddr noise floor $noise $channel
......看看这是否有所作为。如果不这样做,看看$ channel和$ noise(以及任何其他变量)中是否还有其他狡猾的字符:
echo $channel | od -t c
如果有,请使用tr -d
将其从变量中删除。
答案 1 :(得分:4)
您在$noise
末尾有回车符,因此输出' channel=0'
(注意初始空格)会覆盖'AP ac:67:0'
。