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

シェルスクリプトの配列に名前とターゲットを保存したいコマンドを使用する場合

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 に答える