APK versionName grep

1
Estou tentando recuperar o VersionName de um monte de arquivos apk eu tenho em pastas diferentes e armazená-los em uma matriz, mas não está funcionando ... Eu tentei praticamente tudo, mas ele só faz um loop 1 vez / pára após o primeiro arquivo APK.

for folders in */ ; 

  do cd $source${MAP[android]}/$folders

  version=("$(aapt dump badging * | grep versionName )") && echo Entering into $folders and getting versionName

done ;

echo ${version[*]};

eu entendo isso:

package: name = 'myapp' versionCode = '47 'versionName =' 1.9 'platformBuildVersionName =' 6.0-2438415 '

e somente

${version[0]}

é usado ...

EDIT : graças à ajuda do steeldriver, consegui agora obter todos os versionName, mas todos eles estão armazenados em $ {version [0]} ...

for folders in */ ; 

  do cd $source${MAP[android]}/$folders

  version+=("$(aapt dump badging * | grep versionName )") && echo Entering into $folders and getting versionName

done ;

echo ${version[*]};

saída: pacote: nome = 'app' versionCode = '48 'versionName =' 1.10 'platformBuildVersionName =' 6.0-2438415'pacote: nome = 'app' versionCode = '53 'versionName =' 1.11 'platformBuildVersionName =' 6.0-2438415'embalagem: nome = 'app' versionCode = '47 'versionName =' 1.9 'platformBuildVersionName =' 6.0-2438415 '

    
por Pedro Reguenga 21.06.2016 / 14:32

1 resposta

2

Se você deseja anexar saídas sucessivas de uma substituição de comando a uma matriz em bash , é possível usar uma sintaxe como

arr+=( "$(command args)" )

Por exemplo, dê arquivos com

$ grep -H 'versionName' thing*
thing1:versionName: foo
thing2:versionName: bar
thing3:versionName: baz
thing4:versionName: boo

então

$ for f in thing*; do version+=( "$(grep 'versionName' "$f")" ); done
$ 
$ echo "${version[0]}"
versionName: foo
$ 
$ echo "${version[3]}"
versionName: boo
    
por steeldriver 21.06.2016 / 15:03