上下文:我正在尝试通过命令行清理我的 Xcode 工作区和方案。我试过修剪引号和不修剪引号。
当前结果为:
-bash: ~/my/workspace/location: No such file or directory
。但是,如果我直接运行命令,$ xcodebuild clean -workspace ~/my/workspace/location -scheme SchemeName
,它工作得很好。
这是我到目前为止所得到的:
cxc () {
local path_to_workspace="~/my/workspace/location"
local scheme="SchemeName"
if [ ! -z "$1" ]; then
path_to_workspace="$1"
fi
if [ ! -z "$2" ]; then
scheme="$2"
fi
if [ -z "$1" ]; then
echo "No arguments supplied. Using default."
fi
# Trim quotes from URL
path_to_workspace=$("$path_to_workspace" | tr -d \")
xcodebuild clean -workspace "$path_to_workspace" -scheme "$scheme"
}
兴趣线:
path_to_workspace=$("$path_to_workspace" | tr -d \")
这会生成一个尝试执行
$path_to_workspace
的子 shell,即它会尝试执行 ~/my/workspace/location
... 并且由于这不是有效命令 ... 错误消息。
你可能想要的是:
path_to_workspace=$(echo "$path_to_workspace" | tr -d \")
^^^^
我假设
tr -d \"
正在寻找从 $patch_to_workspace
中存储的值中删除双引号但是,变量中没有存储双引号所以...... ??
在这一点上(对我来说),你需要做的就是删除这一行:
path_to_workspace=$("$path_to_workspace" | tr -d \")
这应该能让你克服当前的错误。我不熟悉
xcodebuild
所以我不能说你是否会收到一个新的错误...