我需要把这个
gulp --cordova 'prepare ios' --buildVars='version:${buildVarVersion},target:${target}' --res=${target}
gulp --cordova 'build ios --device --release --codeSignIdentity=${codeSignIdentity}' --no-build --res=${target}
在一个函数内部。需要保留单引号。我正在努力摆脱正确的逃避。我试过了:
function buildIPA() {
CFBundleIdentifier=$1
target=$2
version=$3
codeSignIdentity=$4
buildVarVersion="public";
if [ "$version" = "enterprise" ]; then
buildVarVersion="private";
fi
gulp --cordova \'prepare ios\' --buildVars=\'version:${buildVarVersion},target:${target}\' --res=${target}
gulp --cordova \'build ios --device --release --codeSignIdentity=${codeSignIdentity}\' --no-build --res=${target}
};
但似乎这转化为:
gulp --cordova prepare ios --buildVars=version:${buildVarVersion},target:${target} --res=${target}
全部删除单引号。
答案 0 :(得分:1)
您应该替换所有
gulp --cordova \'prepare ios\' --buildVars=\'version:${buildVarVersion},target:${target}\' --res=${target}
与
gulp --cordova "prepare ios" --buildVars="version:${buildVarVersion},target:${target}" --res=${target}
否则分词(在空白处)会导致命令收到比预期更多的参数。
答案 1 :(得分:1)
将包含变量的部分用双引号括起来:
gulp --cordova 'prepare ios' --buildVars="'version:${buildVarVersion},target:${target}'" --res=${target}
gulp --cordova "'build ios --device --release --codeSignIdentity=${codeSignIdentity}'" --no-build --res=${target}