我运行这个命令来列出我的 android 模拟器:
emulator -list-avds
输出是:
Pixel_2_API_28
现在我可以使用以下命令运行模拟器:
emulator -avd Pixel_2_API_28
哪个工作得很好。但是我想为此创建一个别名,以便我可以只用一个词运行第一个找到的模拟器。
emulator -avd "$(emulator -list-avds)"
但它错误:PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
. 但是路径已经定义,如您所见,该命令在没有命令替换的情况下运行时,执行得很好。
所以我在谷歌上搜索了很多并尝试了很多东西来让它工作。我尝试组合eval
并选择第一行,awk 'NR==1{print $1}'
并尝试放置双引号和单引号并转义双引号,\"
但没有任何效果。
我尝试将命令存储在一个变量中并检查它:
a="$(emulator -list-avds)" ; declare -p a
这个变量对我来说看起来很奇怪:
"eclare -- a="Pixel_2_API_28
也许这就是它不起作用的原因。我不知道现在要谷歌什么以及如何进一步研究,我将不胜感激。
的输出emulator
包括一个 DOS 行结尾(回车/换行对)。命令替换仅去除尾随换行符,将回车作为字符串的一部分作为参数传递给下一次调用。
要剥离它,您可以使用tr
:
emulator -avd "$(emulator -list-avds | tr -d '\r')"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句