输出打印

时间:2011-05-27 11:01:32

标签: bash echo

当我使用以下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地址缺少其第一个八位字节中的两个。 是什么造成的?怎么能避免这个?

2 个答案:

答案 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'