BASH:检查$ STRING的命令输出,如果存在则将输出存储为变量

时间:2015-08-11 19:53:48

标签: linux bash shell scripting grep

背景:

我正在研究一些OBDII软件,我正试图通过蓝牙自动完成连接过程。我有一个工作脚本,但我想进一步自动化它,所以它可以在所有* nix机器上工作,而不仅仅是我的(现在蓝牙设备的MAC手动存储在脚本中)。

我的问题: 该命令的输出是......

$ hcitool scan
Scanning ...

    00:18:56:68:AE:08     OBDII

我需要一种简单的方法将它管道化为grep(或其他任何工作)并检查字符串“OBDII”的输出。如果它看到它,那么它需要相同的行,将生成的MAC复制到变量中,同时剥离所有空格和最后的OBDII标识符,只留下MAC进一步使用到脚本中。

完成这项工作的最简单方法是什么?

任何帮助表示赞赏!!

1 个答案:

答案 0 :(得分:1)

如果操作成功,没有理由只有条件地存储输出 - 更容易始终存储它,如果你想知道是否找到匹配项,检查它是否为空。

result=$(hcitool scan | awk '/OBDII/ { print $1 }')
if [[ $result ]]; then
  echo "Found a value: $result" >&2
else
  echo "No result found" >&2
fi