2011-05-27 187 views
1

當我用下面的echo語句我得到一個不錯的輸出,是從這樣三個獨立的echo語句什麼期望:輸出打印

echo AP $macaddr 
echo noise floor $noise 
echo $channel 

輸出:

AP ac:67:06:30:eb:00, 
noise floor -96 
channel=1 

但是,當我改變所有三成一個單一的'回聲'聲明如下,輸出中斷。

echo AP $macaddr noise floor $noise $channel 

輸出:

channel=06:30:eb:00, noise floor -96 

在該輸出I沒有看到信道和MAC地址是缺少它的兩個第一字節組成。 這是什麼造成的?如何避免這種情況?

+0

這沒有意義。爲什麼要在你的第二個命令中首先打印「channel」? – aioobe 2011-05-27 11:06:35

回答

5

我不知道頻道來自哪裏,但是在$ channel或end $ noise的值的開始處是否存在虛假'CR'? 嘗試這樣做:

channel=`echo $channel | tr -d '\r'` 
noise=`echo $noise | tr -d '\r'` 
echo AP $macaddr noise floor $noise $channel 

...,看是否有差別。如果做不到這一點,看看是否有在$通道和$噪音(以及任何其他變量的)任何其他狡猾字符:

echo $channel | od -t c 

,如果有,用tr -d從變量中刪除。

4

您在$noise的末尾有一個回車符,所以輸出' channel=0'(注意最初的空格)是覆蓋'AP ac:67:0'