2

如果我执行命令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 脚本中的数组中

for elem in `android list avd | cut -d: -f1,2`; do
    echo $elem;
done;

变量 $elem 将(显然)包含整个输出的每个单词。

如何每行读取命令行的输出?

4

1 回答 1

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

于 2013-08-29T08:45:05.427 回答