如何在 bash alias Cordova 中包含目标模拟器

How to include target emulator in bash alias Cordova

在目标模拟器上 运行 Cordova 项目的常规方式如下:

cordova emulate ios --target="iPhone-4s, 9.3"

我有一个 bash 别名 运行 我的项目 iOS 在我的 .bash_profile 中:

alias ios_emulate='gulp --cordova '\''emulate ios -l'\'''

但是,我希望能够在我的别名中包含目标,因为

ios_emulate --target="iPhone-4s, 9.3"

得出 "No target specified for emulator. Deploying to iPhone-6s-Plus, 9.3 simulator"。如何将我指定的任何目标模拟器合并到我的别名中?蒂亚

首先,使用函数,而不是别名:

ios_emulate () {
    gulp --cordova 'emulate ios -l'
}

但是,这很难修改,因为您在命令行中使用的引号实际上并不是参数的一部分;他们只是阻止 shell 在调用您的函数之前执行分词。您需要在正确的位置手动添加引号。

我假设

ios_emulate --target="iPhone-4s, 9.3"

应该与

一样
gulp --cordova 'emulate ios -l --target="iPhone-4s, 9.3"'

一个解决方案可能是

ios_emulate () {
    cordova_arg="emulate ios -l"
    for arg; do
        cordova_arg+=" '$arg'"
    done
    gulp --cordova "$cordova_arg"
}

一次为gulp一个参数构建参数字符串。