shell脚本变量加双引号报错,不加没有问题!!奇怪

因为工作需要,要写一个自动部署的脚本
初学者,第一次写一个脚本

遇到一个想不通的问题

backupDir="~/backup"
deployDir="~/uci-data"
baseName="uci-data"
suffix=date +%Y%m%d

cp -r ${deployDir} -T ${backupDir}/${baseName}${suffix}
报错的问题是 cp cannot stat....
找不到文件夹,将deployDir="~/uci-data"去掉双引号,
改为deployDir=~/uci-data
报错 cp找不到目标文件将backupDir="~/backup"去掉双引号,
改为backupDir=~/backup

就没有问题了

但在脚本的其他地方,我也大量用了变量作为路径,有双引号,都不会有问题,
很奇怪,百思不得其解,shell的变量有无双引号,意义不是一样的吗?

求大神指导

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
select后面AS 字段加双引号和不加双引号的区别
加双引号,可以让小写字段别名,保持小写
全文检索语句 加双引号不加双引号查询结果不一样
RT:rnselect title01 from catitle where FREETEXT(title01, N'台商長江')rnselect title01 from catitle where FREETEXT(title01, N'"台商長江"')rnrn不加双引号的能查到数据 加双引号的查不到数据 是什么原因
shell脚本的奇怪报错
   工作需要用shell写脚本,这语法不复杂,但是,报了一个奇怪的错。         网上查了一圈有说是windows下字符问题的,查了一下,没问题。虽然,*)这个字符删掉也没什么问题,能过,但是觉得不舒服,先占坑,找到解决方法来填坑。#############################################################################找到问...
汉字名字加双引号和不加双引号有区别吗
汉字名字加双引号和不加双引号有区别吗?rn例:rnSELECT v.序号,v.[color=#FF0000]"[/color]名字[color=#FF0000]"[/color] rnFROM view1 vrnrn有必须要加双引号的情况吗?
jquery中变量加$和不加$有什么区别
没有区别,只是习惯。 一般在给jquery对象取名的时候在前面加$。 一看就知道是jquery对象。
jquery变量加不加var问题
/* 右侧下部品牌活动横向滚动效果 */rn$(function()rn var index = 0;rn $buttonlist = $("#activity-title ul li"); [color=#FF0000] //为什么这里如果为var $buttonlist = $("#activity-title ul li");[/color] rn $buttonlist.click(function()rn var index = $buttonlist.index(this);rn imgSlide(index);rn )rn)rnfunction imgSlide(index)rn $buttonlist.eq(index).addClass("chos") [color=#FF0000]//这里的$buttonlist就不能用了[/color]rn .siblings().removeClass("chos");rn
Linux shell脚本变量单引号和双引号的区别以及变量扩展问题
单引号可以防止任何变量扩展。双引号可以防止通配符扩展但它允许变量扩展。#!/bin/sh #测试单引号‘’ 双引号“”的区别 #单引号更严格一些。它可以防止任何变量扩展。双引号可以防止通配符扩展但允许变量扩展。 echo $SHELL echo "$SHELL" echo '$SHELL'结果: 一种防止这种扩展的方法,那就是使用转义字符——反斜杆 #!/bin/
shell脚本单、双引号问题描述
工作中常用到shell脚本,遇到了一个疑惑,求解。     常见的解释:   单引号字符串的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的; 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。   双引号的优点: 双引号里可以有变量 双引号里可以出现转义字符 我的问题如图一:在vim编辑器中,第21行,在使用单...
怎么双引号里面加双引号
string str = ""xxx"";rnrn 怎么在双引号里套双引号,要求不能使用单引号。rnrn 就是让xxx里的值为"xxx",而不是xxx
shell脚本单引号与双引号的区别
区别主要在进行字符串拼接时的差异: your_name="SuperXing" # 使用双引号拼接 greeting="hello, "$your_name" !" greeting_1="hello, ${your_name} !" echo $greeting $greeting_1 # 使用单引号拼接 greeting_2='hello, '$your_name' !' greeting_...
js属性值何时不加引号,何时加单引号、双引号?
js属性值何时不加引号,何时加单引号、双引号?
加*和不加*有什么区别?
我是新手上路,请大家多多帮忙,我在此谢过了!char *str[20]和char str[20]有什么区别?
二维数组加&和不加&的区别???
这是书上的一段代码,没有想明白。rnint calender[12][31];rnint (*monthp)[31];rnfor (month=calender; monthp<&calender[12]; monthp++)rnrn//省略rnrncalender是二维数组calender[12][31]第一行的首地址,calender也是指向行的指针啊,为什么for语句的一个表达式可以用calender赋值,第二个就要用&calender[12] ?rncalender[12]和&calender[12]有什么区别?
[dbo]加与不加的区别?
在存储过程名前加[dbo],比如create procedure [dbo].store as .........rn我知道dbo是数据库当前对象的所有者,那么不加和加dbo好象都可以,那这个dbo岂不是多此一举??rn有什么用吗?rn
服务器端配置加不加“/”
规范化:服务器端的所有配置都写成绝对路径,即加上“/”,该绝对路径永远是相当于项目的根目录。 如果不加“/”,表示的是相对路径,相对于项目的根目录。 所以就出现了,有些配置前面加不加“/”都是一样的效果。 ...
delete加不加[]的区别
delete是我们c++中的关键字,我们都知道它和new是配套使用的,有new就有delete不然会存在内存泄漏的问题。但是我们使用过delete的同学可能会发现delete有两种形式,一种是delete [],那这两个有什么区别呢?               1、delete 释放new分配的单个对象指针指向的内存          2、delete[] 释放new分配的对象数组指针指
加::和不加::有什么区别
各位好,请教各位一个问题,有如下代码::GetDocument();,在调试时,错误提示:GetDocument is not a member of global namespace;但是去掉::符号后,又没有错误了.请问,有::符号和没有::符号,有什么区别?那句错误提示是什么意思?谢谢!
加与不加\n的结果
#includernint main(void)rnrn char i=201;rn printf("%c",i);rn return 0;rnrn输出结果[img=http://photo.renren.com/photo/341635418/photo-3921272379?curpage=0&t=][/img]rn rnrn加了‘\n’之后 rn[img=http://photo.renren.com/photo/341635418/photo-3921272379?curpage=0&t=#3921272378][/img]
加不加单引号的区别??
学MYSQL的时候,书上总是说数值型的值不加单引号rn文字型,时间和日期型的值加单引号rn那位高手能不能解释下,加不加单引号的区别??rnrn为什么在严密的开发过程中,文字型,时间和日期型的值必须要加单引号?rnMYSQL不是可以自动转值的吗?rn加不加单引号在DB侧到底有什么不同??rnrn谢谢!rn
@RequestParam加与不加的区别
@RequestMapping("/list") public String test(int userId) { return "list"; } @RequestMapping("/list") public String test(@RequestParam int userId) { return "list"; } 第一种写法参数为非必传...
shell脚本(变量)
1、定义及赋值 格式: 变量名 = 变量值 2、引用(查看)变量 格式:$变量名、${变量名} 例: Title = shaodianlingxing echo $Title 输出:shaodianlingxing 3、双引号 功能:允许引用、\转义 例如:echo “$Title Group” 输出:shaodianlingxing Group
shell脚本的变量
变量的定义 变量即在程序运行过程中它的值是允许改变的量 变量是用一串固定的字符来表示不固定的值的一种方法 变量是一种方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息 在shell中变量时不能永久保存在系统中的,必须在文件中声明 变量的种类 环境级 export a=1 在系统关闭后就会失效 用户级 vim ~/.bash_profile 系统关闭后依旧生效,但...
shell脚本变量
环境变量和本地变量,环境变量是具有全局属性的。 在交互式shell下面定义变量:VALUE=100 这定义的即为本地变量,如果要将其变成环境变量则需要export VALUE 导出环境变量,取消环境变量则可以使用unset命令。 环境变量是可以被子进程继承的更是可以被子子孙孙都继承的。环境变量在程序替换掉的时候默认是不会被替换掉的。变量的拼接 shell环境变量 例如PWD HOME HO
shell脚本(变量-位置变量)
本职业规划路线是专门针对想要从事Python web开发的同学而准备的,并且是严格按照企业需求的标准定制的学习路线。路线中包含Python基础和进阶、前端、MySQL数据库、Flask和Django框架以及多个企业真实项目。在学习完本路径中所有的课程后,从前端页面的实现,到后台代码的编写,再到数据库的管理,一人可以搞定一个公司网站的所有事情,真正实现全栈开发,让你升职加薪不是梦!
shell脚本 变量
1) shell 脚本中变量分为三种,局部变量,环境变量,shell变量。       局部变量: 定义在函数内部 基本类型 local num=‘hello world’,局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。如果同名,Shell函数定义的local变量会屏蔽脚本定义的global变量。      环境变量 :一般用e
shell脚本报错
报错——syntax error near unexpected token,报错——bad interpreter: 没有那个文件或目录,在虚拟机中找不到共享文件的位置
如何自动加双引号
#符号把一个符号直接转换为字符串,例如: #define STRING(x) #x const char *str = STRING( SQ); str的内容就是&quot;SQ&quot;,也就是说#会把其后的内容直接加上双引号。
myeclipse 提示加双引号
前段日子在网上阅读网站的html 代码,发现许多网站的属性 id name type都是不加属性的。rn以为是新标准就不理会了。rn但是最近我修改它们的代码,把html转换成jsp,myeclipse 一大堆的错误提示要加双引号rn不修复也可以在tomcat下面跑起来正常浏览rn但是jsp 里面其实一大堆的错误提示 很不爽rn 请各位遇到过情况帮我解决问题! rn 谢谢
双引号内加双引号是什么语法啊?
就象这样! rn public String toString()rn rn return "[" + x + ", " + y + "]";rn rnrnrn而且里面的引号还有两个加号,为什么要两个少一个都不行?
Shell脚本中赋值变量时单引号‘和双引号“的区别
直接上图: 结论:使用单引号的时候,变量name就会失去了原有的变量内容,仅显示为一般字符。 End;
这个双引号前面为什么不加斜杠?
如题,我记得双引号前面也要加斜杠,为什么这个程序没有用呢?rnrn[code=java]#include "stdafx.h"rn#include "stdio.h"rnrnint main(void)rnrn rn char ch;rn int count = 0;rn while((ch = getchar()) != '.')rn rn if(ch != '"' && ch!= '\'') //此处为什么双引号前面没用斜杠而单引号前面要用?rn rn count++;rn rn rn printf("There are %d non-quote characters.\n", count);rn rn return 0;rn[/code]
奇怪的小问题!双引号
想在字符串中包含双引号,用“\"”得到的就是实实在在的\",用“\u0022”结果就是“\"”,用@也没帮助?rn环境用的是。net 2008.
ConyEdit之批量加双引号
        有时候需要对文本的每一行添加双引号,行中包含双引号的,还需要先转义,一般方法有先替换句中的双引号,再在行首行尾添加双引号,这里介绍另外一种简单的实现方法。         利用ConyEdit轻松实现。保持ConyEdit在后台运行,在需要处理的文本后面输入一行命令行&quot;cc.quo&quot;,复制文本及命令行,粘贴即可看到结果。         比如,保持ConyEdit在后台运行,复制以...
变量赋值,双引号
command2 = "ttt=99";和以下命令的区别有吗rn ttt=textBox1 .Text ;//在textBox1里面输入99rn command2 = "\"ttt=" + textBox1.Text + "\"";rn 我用textBox2看了command2是"ttt=99"rn textBox2.Text = command2;rn可是我在运用命令时,后面一中方法出不来结果。我用的是matlab的引擎函数,混编的。
双引号中的变量问题
手头有个项目要和喷码机通讯,将电脑上的数据发到喷码机的存储区中,喷码机有100个存储区,用序号0—99表示,通讯格式rn"1" + " " + "WRM" + " " + "0" + " " + "A:" + " " + pmnr + " " + Chr(13),其中"0"就是一号存储区,现在我想用Text1.text代替之,可是引号中的变量喷码机无法识别,请问有什么办法?
双引号中引入变量
String username = request.getParameter(&quot;username&quot;);  String content = request.getParameter(&quot;content&quot;);  out.println(&quot;{ username : '&quot;+username+&quot;' , content : '&quot;+content+&quot;'}&quot;);无论双引号还是单引号都是成对出现,那么在成对的里面无...
PyCharm报错,cmd没有问题。
在cmd通过pip下载的包,在PyCharm中导入依然报错。如下图: 解决办法是:settings---&gt;Project:项目名---&gt;Project Interpreter---&gt;点击向下的箭头,show all.如图 点击右侧加号,在弹出框中,选择existing environment ,配置自己本地的python路径,然后勾选选择框即可。 ...
JavaScript全局作用域下,变量加var和不加var的区别。
全局作用域下变量加var和不加var的区别 页面导航 第一个区别:不加var的变量名没有赋值输出会报错 第二个区别:加var的变量即是window的属性又是全局变量 第三个区别:delete只能删掉window下的属性 第一个区别 如果变量名在全局作用域下不加var,则浏览器不会对这个变量进行预解析。 如果没有给变量名加var,也没有给这个变量赋值,那么在console.log()输出时会报错...
JavaScript声明变量加var和不加var的区别
Javascript是遵循ECMAScript标准下的一个产物,自然ECMAScript的标准其要遵循。 先来看下var关键字的定义和用法 var 语句用于声明变量。 JavaScript 变量的创建也叫作&quot;声明&quot;一变量: var carName;  变量声明后,变量为空 (没有值)。 为变量复制,操作如下: carName = &quot;Volvo&quot;; var test = func...
跑马灯(加不加sizeTofFit)的区别
- (void)touchesBegan:(NSSet&amp;lt;UITouch *&amp;gt; *)touches withEvent:(UIEvent *)event { [self setupNavigationTitle]; } - (void) setupNavigationTitle { NSString *discussTitle = @&quot;测试跑马灯测试跑马灯测试跑马灯测试...
相关热词 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法 c# gmail 发邮件 c# 多层文件