淮安软件园网站建设,站长工具,邯郸网络营销推广软件,四川省建设招标网站首页简要总结 不加引号#xff1a;不会将含有空格的字符串视为一个整体输出, 如果内容中有变量等#xff0c;会先把变量解析出结果#xff0c;然后在输出最终内容来#xff0c;如果字符串中带有空格等特殊字符#xff0c;则不能完整的输出#xff0c;需要改加双引号#xff…简要总结 不加引号不会将含有空格的字符串视为一个整体输出, 如果内容中有变量等会先把变量解析出结果然后在输出最终内容来如果字符串中带有空格等特殊字符则不能完整的输出需要改加双引号一般连续的字符串数字路径等可以用。 不带引号时默认为字符串赋值不能带空格执行会报错 command not found原理是不带引号表示赋值操作如果没有空格那么会误认为是多个命令而命令又不存在。 单引号可以说是所见即所得即将单引号内的内容原样输出或者描述为单引号里面看到的是什么就会输出什么。 双引号把双引号内的内容输出出来如果内容中有变量会先把变量解析出结果然后在输出最终内容来。 单引号和双引号之分二者的 主要区别在于被单引号括起来的字符都是普通字符就算特殊字符也不再有特殊含义而被双引号括起来的字符中“$”、\“和反引号是拥有特殊含义的”$代表引用变量的值而反引号代表引用命令。 反引号如果需要调用命令的输出或把命令的输出赋予变量则命令必须使用反引号包含这条命令才会执行。反引号的作用和 $(命令) 是一样的但是反引号非常容易和单引号搞混所以推荐大家使用 $(命令) 的方式引用命令的输出。 反引号就是 tab键上面那个符号 。正如不加引号默认把命令当做普通字符串因此加了反引号就能识别为命令 [rootEMS3 test]# echo date # date被当做字符串被原封不动的打印了出来date
[rootEMS3 test]# echo date #带反引号Thu Feb 16 10:57:06 CST 2023 # 输出日期格式 注意反引号等价于$语法括号是必须的表示是命令而不是变量 [rootlocalhost ~]# echo $(date)
2013年 10月 21 日 星期一 18:25:09 CST #打印出日期[rootlocalhost ~]# echo $date 没有结果因为不存在date变量除非你先定义一个示例
可以直接在终端执行命令多行命令也能识别例如先定义一个变量然后在下一条命令进行引用也可以再shell脚本中写入多条命令然后再执行这个脚本进行验证。
1、有空格必须加双引号。
比如 namezhang san 这样执行就会出现问题反例
[rootlocalhost ~]# namezhang san
-bash: san: command not found # 报san: command not found此时san字符串被误识别为命令而命令又不存在于系统集中而必须用引号括起来正例
[rootlocalhost ~]# namezhang san
[rootlocalhost ~]# echo $name #注意这个打印语法中变量没有引号等符号与后文中示例进行区分
zhang san #输出zhang san 2. 如果输出时使用单引号则$name原封不动地输出
反例
[rootlocalhost ~]# namezhang san
[rootlocalhost ~]# echo $name
$name # 注意此时$符号也被原封不动的打印了出来正例
[rootlocalhost ~]# namezhang san
[rootlocalhost ~]# echo $name #注意这个打印语法中变量没有引号等符号与后文中示例进行区分
zhang san #输出zhang san 3.如果输出时使用双引号则会输出变量name的值
正例
[rootlocalhost ~]# echo $name
zhang san # 成功打印如果被双引号括起来那么这条命令仍会正常执行
[rootlocalhost ~]# echo date
2013年 10月 21 日星期一 18:14:21 CST也就是说双引号不影响原有的语法
参考
ShellBash单引号、双引号、不加引号和反引号用法详解