将hcitool运行到变量使用IFS

时间:2017-08-29 09:33:23

标签: linux bash

我正在使用Stretch Lite在Raspberry Pi上为蓝牙应用程序编写配置工具。 当我运行hcitool scan时,我看到了这个输出:

Scanning ...
        00:80:52:51:3D:7E       BlueCN+001 D-513D7E
        84:C7:EA:64:45:87       Xperia X Compact

现在我想在变量scanres中输出此输出,所以我使用

scanres=$(hcitool scan)

这似乎没问题,但是mac-address错过了':#39;

echo $scanres
Scanning ...
        00 80 25 51 3D 7E       BlueCN+001 D-513D7E
        84 C7 EA 64 45 87       Xperia X Compact

在我的脚本的某处,我更改了IFS(内部字段分隔符),但没有将其设置回原始值。

IFS=':'

这是正常行为吗?

我知道我可以将输出重定向到hcitool scan>scanres的文件,但我想尽可能避免这种情况。

1 个答案:

答案 0 :(得分:-1)

是的。您需要在调用echo

之前取消设置IFS

我认为xxx有以下内容

Scanning ...
        00:80:52:51:3D:7E       BlueCN+001 D-513D7E
        84:C7:EA:64:45:87       Xperia X Compact

 IFS=':'
 ( IFS=''  var=$(cat xxx); echo $var; )
 echo "$IFS"

作为回报,你会得到

Scanning ...
        00:80:52:51:3D:7E       BlueCN+001 D-513D7E
        84:C7:EA:64:45:87       Xperia X Compact

和IFS未改变为':'