【发布时间】:2020-06-25 14:24:05
【问题描述】:
我有一个构建脚本,我在其中尝试将文件复制到带有空格的目录中。当该行这样编写时,我的代码可以正常工作:
cp test.png My\ Program.app/Contents/Resources
但是当它改为:
cp test.png “My Program.app/Contents/Resources”
...失败并出现错误:
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
怎么了?
【问题讨论】:
-
shell脚本故障排除第一步:将
set -x添加到脚本顶部以显示命令运行。 -
好的,我快接近了...在添加“set -x”之后,我发现问题是我的应用名称中有空格,并且用双引号将整个内容括起来'在脚本中不起作用(但在终端中直接键入时起作用)。我现在正在尝试一些不同的东西......
-
您的引号实际上是
“(如您的问题)还是实际上是"(如bash 期望引号)? -
@MisterMiyagi,默认情况下,许多原生 MacOS 文本编辑器会自动将常规引号替换为智能引号,除非 the relevant "feature" is explicitly turned off。因此,对于使用非专业程序员编辑器的文本编辑器的人来说,在该平台上使用“智能引号”而不是纯 ASCII 引号并不是特别不寻常。
-
@CharlesDuffy 我在问,因为代码/终端中的引号通常是正确的,但是将它们写入答案会将它们变成智能引号。