Bash ADB使用变量调用应用程序

时间:2015-11-14 20:23:21

标签: android bash adb

我有一个应用程序,在调用时,将调用它的字符串输出到Toast通知中。

像这样:

am start -a android.intent.action.MAIN -e message "Example  String" -n com.rja.utility/.ShowToast

我想创建一个for循环,它会循环遍历.txt文件中的行并使用上面的方法输出它们,如下所示:

for i in `cat /somedirectory/ToastQueue.txt`; do
    am start -a android.intent.action.MAIN -e message "$i" -n com.rja.utility/.ShowToast > dev/null
done

但显然不起作用,它抱怨我有额外的参数。

所以我的问题是,我怎么能做到这一点?我无法修改应用,所以这一切都应该通过shell或ADB来完成

1 个答案:

答案 0 :(得分:1)

所以我得到了它的工作:

for i in `cat /somedirectory/ToastQueue.txt`; do
    i="\"$i\""
    eval "am start -a android.intent.action.MAIN -e message $i -n com.rja.utility/.ShowToast > dev/null"
done

如果邮件中有空格,则必须引用该邮件,但是您无法在eval中引用该邮件或者将其退出,因此我们在将其传递给应用程序之前引用它。