执行命令是bash并为其提取数据

时间:2018-09-13 06:50:06

标签: bash shell

我必须从终端中执行的以下命令中提取一些所需的数据:

emulator -avd emualtor-666 

执行完之后,我在终端中得到了这样的输出,并在一秒钟之内稍稍延迟:

emulator: Listening for console connections on port: 5566
emulator: Serial number of this emulator (for ADB): emulator-5566
emulator: emulator window was out of view and was recentered

因此,我需要从第一行提取端口值:5566 ,或者从第二行提取 emulator-5566 。我该怎么办?

我绑了下面的脚本,但它只是在返回任何行时卡住了

#!/usr/bin/env bash

emuName=$1

IFS=$'\n'
for line in $(emulator -avd "$emuName");
do
echo ${line}
done  

我在做什么错了?

1 个答案:

答案 0 :(得分:2)

尝试

emulator -avd emualtor-666 | head -1 | cut -d ':' -f 3

emulator -avd emualtor-666 | sed -e 's/.*Listening.*://;t;d'

emulator -avd emualtor-666 | awk '/Listening/ {gsub(/.*:/,""); print}'