如果我执行命令android list avd
,我得到以下输出
Available Android Virtual Devices:
Name: X10_Mini
Path: /home/myhome/.android/avd/X10_Mini.avd
Target: Android 2.1 (API level 7)
ABI: armeabi
Skin: 240x320
Sdcard: 2G
---------
Name: AVD_for_4in_WVGA_Nexus_S
Path: /home/myhome/.android/avd/AVD_for_4in_WVGA_Nexus_S.avd
Target: Android 2.1 (API level 7)
ABI: armeabi
Skin: 480x800
Sdcard: 2G
我想在shell脚本中将Name和target存储在数组中 如果我使用命令
for elem in `android list avd | cut -d: -f1,2`; do
echo $elem;
done;
变量$ elem(显然)将包含整个输出的每个单词。
如何读取每行命令行的输出?
答案 0 :(得分:1)
也许我找到了一个不同的解决方案,我可以在循环之外使用变量 我必须将默认IFS更改为换行符
echo Searching for android virtual devices ...
IFS=$'\n';
for l in $(${PROGDIR}/android list avd) ; do
VAR1=$(echo $l | cut -d: -f1 | sed -e 's/\s*//'); #sed removes trailing blanks
if [ $VAR1 == "Name" ]; then
NUM_AVD=$(($NUM_AVD+1));
fi;
done
echo "NUM_AVD=$NUM_AVD"
在这种情况下,NUM_AVD正确为2