加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

文件名包含空格CP时失败

发布时间:2020-12-15 19:39:06 所属栏目:安全 来源:网络整理
导读:问题提出 用之前的往xcode添加模板的脚本时报错: #!/bin/bashSAVEIFS=$IFSIFS=$(echo -en "nb")PROJECT_TEMPLATES_PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/i

问题提出
用之前的往xcode添加模板的脚本时报错:

#!/bin/bash

SAVEIFS=$IFS
IFS=$(echo -en "nb")

PROJECT_TEMPLATES_PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/iOS/Application/"
FILE_TEMPLATES_PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/Source/"

EMPTY_APPLICATION_PATH="$PWD/Empty Application.xctemplate"

OC_CATEGORY_PATH="$PWD/Objective-C category.xctemplate"
OC_PROTOCOL_PATH="$PWD/Objective-C protocol.xctemplate"
OC_EXTENSION_PATH="$PWD/Objective-C class extension.xctemplate"

cp -R $EMPTY_APPLICATION_PATH $PROJECT_TEMPLATES_PATH

cp -R $OC_CATEGORY_PATH $FILE_TEMPLATES_PATH
cp -R $OC_PROTOCOL_PATH $FILE_TEMPLATES_PATH
cp -R $OC_EXTENSION_PATH $FILE_TEMPLATES_PATH

IFS=$SAVEIFS


分析问题
1.根据提示可能是新装的xcode模板路径变了,所以找不到目的文件位置.验证一下(把上面的路径粘贴在Search【Command + space】)发现是可以找到xcode文件模版的路径的.
2仔细看下xcode文件模板的路径发下有空格;猜想可能是包含空格造成的问题;修改下代码如下

cp -R "$EMPTY_APPLICATION_PATH" "$PROJECT_TEMPLATES_PATH"

3.执行发下问题解决了; 添加两个双引号的的作用是: The reason you double quote variables is because the contents of the variable may include spaces. A space is typically the boundary character which denotes a break in atoms within a string of text for most commands(一般在linux命令中空格被当做字符分割符号)
4.根据描述我们实验一下



其他知识
1.shell 命令使用单引号与双引号的区别

2.Shell脚本调试选项(引用别处文章内容链接在下面)
Shell本身提供一些调试方法选项:
-n,读一遍脚本中的命令但不执行,用于检查脚本中的语法错误。
-v,一边执行脚本,一边将执行过的脚本命令打印到标准输出。
-x,提供跟踪执行信息,将执行的每一条命令和结果依次打印出来。

使用这些选项有三种方法
在命令行提供参数:$sh -x script.sh
脚本开头提供参数:#!/bin/sh -x
在脚本中用set命令启用or禁用参数:其中set -x表启用,set +x表禁用。注意避免几种调试选项混用。

参考链接:
https://unix.stackexchange.co...
https://unix.stackexchange.co...
https://www.cnblogs.com/anliv...
https://stackoverflow.com/que...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读