首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用参数中的保存引号调用命令

如何使用参数中的保存引号调用命令
EN

Stack Overflow用户
提问于 2015-04-08 08:11:00
回答 1查看 98关注 0票数 0

我有下面的代码,我需要传递带有空格的方案参数,所以我需要用引号发送它,但是当我调用我的主命令XCODE_RUN_COMMAND时,它用引号来表示我的方案,但是它又添加了一个引号。

代码语言:javascript
复制
[[ -n $XCODE_SCHEME ]] && XCODE_W_P_ARG="$XCODE_W_P_ARG -scheme \"${XCODE_SCHEME}\""
cd "${XCODE_PROJECT_DIRECTORY}"
XCODE_RUN_COMMAND="xcodebuild ${XCODE_W_P_ARG} -sdk ${XCODE_SDK} ${XCODE_CONFIG}"
$XCODE_RUN_COMMAND -showBuildSettings > xcodebuild.properties.prep || die "Fail got parameters from project parameter"

我得到了以下输出和错误:

代码语言:javascript
复制
xcodebuild -project ... -configuration Debug -scheme '"QVC' - 'QA.xcscheme"' -sdk iphoneos -xcconfig .../config.xcodeconfig -showBuildSettings
11:00:28 xcodebuild: error: Unknown build action '-'.

我想做的是:

代码语言:javascript
复制
"$XCODE_RUN_COMMAND" -showBuildSettings > xcodebuild.properties.prep || die "Fail got parameters from project parameter"

但是在引号中所有的命令都不起作用。

代码语言:javascript
复制
'xcodebuild -project .... -configuration Debug -scheme "QVC - QA.xcscheme" -sdk iphoneos -xcconfig .../config.xcodeconfig' -showBuildSettings

那么,如何使用方案名称中的保存引号来调用$XCODE_RUN_COMMAND呢?

我做了:

代码语言:javascript
复制
XCODE_W_P_ARG=( 'arg1' 'arg2' 'arg3' )
[[ -n $XCODE_SCHEME ]] && XCODE_W_P_ARG+=( -configuration  "$XCODE_CONFIGURATION" )
[[ -n $XCODE_SCHEME ]] && XCODE_W_P_ARG+=( -scheme "$XCODE_SCHEME" )
[[ -n $XCODE_SCHEME ]] && XCODE_W_P_ARG+=( -target "$XCODE_TARGET" )
cd "${XCODE_PROJECT_DIRECTORY}"
xcodebuild "${XCODE_W_P_ARG[@]}" -sdk "$XCODE_SDK" "$XCODE_CONFIG" - showBuildSettings > xcodebuild.properties.prep || die "Fail got parameters from  project parameter"

和产出:

代码语言:javascript
复制
xcodebuild arg1 arg2 arg3 -configuration Debug -scheme 'QVC - QA.xcscheme' -target '' -sdk iphoneos '-xcconfig .../src/config.xcodeconfig' -showBuildSettings
11:52:55 xcodebuild: error: invalid option '-xcconfig .../src/config.xcodeconfig'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-08 08:38:11

目前,围绕$XCODE_SCHEME的引号并不像您所期望的那样起作用,因此"QVC-QA.xcscheme"被视为三个独立的参数。将数组用于参数:

代码语言:javascript
复制
XCODE_W_P_ARG=( 'arg1' 'arg2' 'arg3' ) # whatever was in there before the posted code
[[ -n $XCODE_SCHEME ]] && XCODE_W_P_ARG+=( -scheme "$XCODE_SCHEME" )
cd "$XCODE_PROJECT_DIRECTORY"
xcodebuild "${XCODE_W_P_ARG[@]}" -sdk "$XCODE_SDK" "$XCODE_CONFIG" -showBuildSettings > xcodebuild.properties.prep || die "Fail got parameters from project parameter"

使用最新更新中的代码:

代码语言:javascript
复制
XCODE_W_P_ARG=()
XCODE_CONFIG=( -xcconfig .../src/config.xcodeconfig ) # "..." looks like a typo
if [[ -n $XCODE_SCHEME ]]; then
    XCODE_W_P_ARG+=( -configuration  "$XCODE_CONFIGURATION" )
    XCODE_W_P_ARG+=( -scheme "$XCODE_SCHEME" )
    XCODE_W_P_ARG+=( -target "$XCODE_TARGET" )
fi
cd "${XCODE_PROJECT_DIRECTORY}"
xcodebuild "${XCODE_W_P_ARG[@]}" -sdk "$XCODE_SDK" "${XCODE_CONFIG[@]}" - showBuildSettings > xcodebuild.properties.prep || die "Fail got parameters from  project parameter"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29509254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档