输出打印

Kal*_*yan 1 bash echo

当我使用以下echo语句时,我得到一个很好的输出,这是从这三个独立的echo语句中得到的结果:

echo AP $macaddr
echo noise floor $noise
echo $channel
Run Code Online (Sandbox Code Playgroud)

输出:

AP ac:67:06:30:eb:00,
noise floor -96
channel=1
Run Code Online (Sandbox Code Playgroud)

但是,当我将所有三个变为一个单独的'echo'语句时,如下所示,输出中断.

echo AP $macaddr noise floor $noise $channel
Run Code Online (Sandbox Code Playgroud)

输出:

channel=06:30:eb:00, noise floor -96
Run Code Online (Sandbox Code Playgroud)

在此输出中,我没有看到通道和MAC地址缺少其第一个八位字节中的两个.是什么造成的?怎么能避免这个?

Chr*_*s J 5

我不知道频道来自哪里,但是在$ channel或者$ $噪音开始时是否存在虚假的'CR'?尝试做:

channel=`echo $channel | tr -d '\r'`
noise=`echo $noise | tr -d '\r'`
echo AP $macaddr noise floor $noise $channel
Run Code Online (Sandbox Code Playgroud)

......看看这是否有所作为.如果不这样做,看看$ channel和$ noise(以及任何其他变量)中是否还有其他狡猾的字符:

echo $channel | od -t c
Run Code Online (Sandbox Code Playgroud)

如果有,请使用tr -d从变量中删除它们.