文件名包含空格CP时失败

ElasticSearch
• 阅读 3685

问题提出
用之前的往xcode添加模板的脚本时报错:
文件名包含空格CP时失败

#!/bin/bash

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")

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.根据描述我们实验一下
文件名包含空格CP时失败



其他知识
1.shell 命令使用单引号与双引号的区别
文件名包含空格CP时失败
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...

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
3年前
Linux shell脚本执行错误:bad substitution
脚本内容如下:!/bin/shstring"Thisisastring!"echo${string:1:4}添加可执行权限后报错badsubstitution:!输入图片说明(https://static.oschina.net/uploads/img/201612/301
Stella981 Stella981
3年前
MacOS在没有安装xcode情况下使用homebrew
当没有xcode时,我们使用homebrew会提示出错。Error:Failurewhileexecuting:/usr/bin/otoolL/usr/bin/install\_name\_tool或者出现Error:The/usr/localdirectoryisnotwritable.Evenifthisd
Stella981 Stella981
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Easter79 Easter79
3年前
SpringMvc接受特殊符号参数被转义
WEB开发时,在前端通过get/post方法传递参数的时候 如果实参附带特殊符号,后端接收到的值中特殊符号就会被转义例如该请求: http://localhost:10001/demo/index.do?name张三(1)注:中文()不会出现此种情况后台就收到的实际name值为:  张三&40;1&41;&40;其实为h
Stella981 Stella981
3年前
LeetCode 5561. 获取生成数组中的最大值
文章目录1\.题目2\.解题1\.题目给你一个整数n。按下述规则生成一个长度为n1的数组nums:nums00nums11当2<2i<n时,nums2inumsi
主动写入流对@ResponseBody注解的影响 | 京东云技术团队
问题回溯2023年Q2某日运营反馈一个问题,商品系统商家中心某批量工具模板无法下载,导致功能无法使用(因为模板是动态变化的)商家中心报错(JSON串):"code":1,"msg":"失败"负责的同事看到失败后立即与我展开讨论(因为不是关键业务,所以不需要
京东云开发者 京东云开发者
7个月前
主动写入流对@ResponseBody注解的影响
作者:京东零售柯贤铭问题回溯2023年Q2某日运营反馈一个问题,商品系统商家中心某批量工具模板无法下载,导致功能无法使用(因为模板是动态变化的)商家中心报错(JSON串):"code":1,"msg":"失败"负责的同事看到失败后立即与我展开讨论(因为不是
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
ElasticSearch
ElasticSearch
Lv1
画图恰似归家梦,千里河山寸许长。
文章
3
粉丝
0
获赞
0