Bash 输出打印

Bash 输出打印,bash,echo,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 channel=06:30:eb:00, noise floor -96 但是,当我将所有三个语句都更改为一个单独的“echo”语句(如下所示)时,输出中断 echo AP $macadd

当我使用以下echo语句时,我得到了一个很好的输出,这是这三个单独的echo语句所期望的:

echo AP $macaddr
echo noise floor $noise
echo $channel
输出:

AP ac:67:06:30:eb:00,
noise floor -96
channel=1
channel=06:30:eb:00, noise floor -96
但是,当我将所有三个语句都更改为一个单独的“echo”语句(如下所示)时,输出中断

echo AP $macaddr noise floor $noise $channel
输出:

AP ac:67:06:30:eb:00,
noise floor -96
channel=1
channel=06:30:eb:00, noise floor -96
在这个输出中,我看不到通道,MAC地址缺少它的前两个八位字节。
这是什么原因造成的?如何避免这种情况?

您在
$noise
末尾有一个回车符,因此输出
'channel=0'
(注意初始空间)正在覆盖
'AP ac:67:0'

您在
$noise
末尾有一个回车符,因此输出
'channel=0'
(注意初始空间)正在覆盖“AP ac:67:0”

我不知道通道从何而来,但$channel或end$noise的值的开头是否有虚假的“CR”? 试着做:

channel=`echo $channel | tr -d '\r'`
noise=`echo $noise | tr -d '\r'`
echo AP $macaddr noise floor $noise $channel
…看看这是否会有所不同。否则,请查看$channel和$noise(以及任何其他变量)中是否存在任何其他不可靠的字符:


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

我不知道通道从何而来,但$channel或end$noise的值的开头是否有虚假的“CR”? 试着做:

channel=`echo $channel | tr -d '\r'`
noise=`echo $noise | tr -d '\r'`
echo AP $macaddr noise floor $noise $channel
…看看这是否会有所不同。否则,请查看$channel和$noise(以及任何其他变量)中是否存在任何其他不可靠的字符:


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

这没有意义。为什么要在第二个命令中首先打印
频道
。为什么要在第二个命令中首先打印
频道