我试图检索不同文件夹中的一堆 apk 文件的 VersionName 并将它们存储在一个数组中,但它不起作用...我几乎尝试了所有方法,但它只在第一个 APK 文件后循环 1 次/停止。
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[*]};
我明白了:
软件包:name='myapp' versionCode='47' versionName='1.9' platformBuildVersionName='6.0-2438415'
并且仅
${version[0]}
用来...
编辑:感谢steeldriver的帮助,我现在能够获得所有versionName,但它们都存储在${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[*]};
输出 : 软件包:名称 = 'app' 版本代码 = '48' 版本名称 = '1.10' 平台构建版本名称 = '6.0-2438415' 软件包:名称 = 'app' 版本代码 = '53' 版本名称 = '1.11' 平台构建版本名称 = '6.0-2438415' 软件包:名称 = 'app' 版本代码 = '47' 版本名称 = '1.9' 平台构建版本名称 = '6.0-2438415'
答案1
如果要将命令替换的连续输出附加到数组中bash
,则可以使用类似语法
arr+=( "$(command args)" )
例如,给文件
$ grep -H 'versionName' thing*
thing1:versionName: foo
thing2:versionName: bar
thing3:versionName: baz
thing4:versionName: boo
然后
$ for f in thing*; do version+=( "$(grep 'versionName' "$f")" ); done
$
$ echo "${version[0]}"
versionName: foo
$
$ echo "${version[3]}"
versionName: boo