Shell  变量用双引号引起来,双引号就是表示这个双引号内为一个字符串。

对于 if 条件语句里所有的字符串的比较时,最好是在变量的外面加上双引号。特别是 if -n 判断字符串是否为null时候(null意思就是字符串长度为0),一定要加上双引号。否则,像下面的case就会出错。

if [ -n $a ] 等价于 if[ -n ]

对于字符串长度为0时,相当于没有参数,这句总返回为真。明明a的为空串,长度为空,但是却判断出来为非空字符串。

改为if [ -n "$a" ]就没有此问题,可以判断出来为此为空字符串。

对于字符串的变量,一个比较特殊的情况,就是数组变量。这个时候变量外面不能用双引号,否则的话,shell会把双引号里的内容当作一个字符串,而不会去以空格分割里面的内容。

arr="12 3 4 5"

for i in $arr  ---当数组用,所以不能加双引号

echo $i

arr="12 3 4 5"

for i in "$arr" --加了双引号,就会将$arr的内容作为一个字符串一起输出

echo $i

1 2 3 4 5

所以,一般最好是加上双引号, 但是对于数组类型变量,不加双引号。

Shell  变量用双引号引起来,双引号就是表示这个双引号内为一个字符串。对于 if 条件语句里所有的字符串的比较时,最好是在变量的外面加上双引号。特别是 if -n 判断字符串是否为null时候(null意思就是字符串长度为0),一定要加上双引号。否则,像下面的case就会出错。a=""if [ -n $a ] 等价于 if[ -n ]对于字符串长度为0时,相当于没有参数,这句总
echo输出 echo 单 双引号 的区别, 双引号 支持转义, 开头的 变量 会被自动替换,PWD本身就是特殊 变量 ,当前的路径,单 引号 则就是输出。例子:echo”开头的 变量 会被自动替换,PWD本身就是特殊 变量 ,当前的路径,单 引号 则就是输出。 echo “开头的 变量 会被自动替换,PWD本身就是特殊 变量 ,当前的路径,单 引号 则就是输出。例子:echo”PWD” /Users/qinqi/Downloads echo ‘$PWD’ 预定义 变量 echo $PWD 当前路径 echo $USER 当前是谁 echo $HOME 当前主目录 echo ~ 波浪线是HOME的简写
一、字符串基础知识 字符串是 shell 编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单 引号 ,也可以用 双引号 ,也可以不用 引号 。单 双引号 的区别跟PHP类似。 代码如下: str=’this is a string’ 单 引号 字符串的限制: •单 引号 里的任何字符都会原样输出,单 引号 字符串中的 变量 是无效的; •单 引号 字串中不能出现单 引号 (对单 引号 使用转义符后也不行)。 代码如下: your_name=’qinjx’ str=”Hello, I know your are \”$your_name\”! \n” 双引号 的优点: • 双引号 里可以有
引号 双引号 ,反向单 引号 的区别: 1、单 引号 :当 变量 内容用单 引号 (‘’)时,对里面的命令echo和 变量 USER都无法识别,只识别成字符串本身,称之为强引用。 2、 双引号 :当 变量 内容用 双引号 (“”)时,是不能识别出里面的命令echo的,但可识别出里面的 变量 USER,称之为弱引用。 3、反向单 引号 :当 变量 内容用反向单 引号 (``)时,对里面的命令echo和 变量 USER都可识别,并执行里面的命令echo,反向单 引号 和$()功能一样。 不 引号 :不会将含有空格的字符串视为一个整体输出, 如果内容中有命令、 变量 等,会先把 变量 、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改 双引号 ,一般连续的字符串,数字,路径等可以用。 单 引号 :可以说是所见即所得:即将单 引号 内的内容原样输出,或者描述为单 引号 里面看到的是什么就会输出什么。 双引号 :把 双引号 内的内容输出出来;如果内容中有命令、 变量 等,会先把 变量 、命令解析出
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录不可小看的引用前言一、反斜线二、使用步骤1.引入库2.读入数据总结项目场景:问题描述:原因分析:解决方案: 引用是 shell 脚本内部的一部分,因此专门设置本节来阐明它在所有 shell 中的用法。如果您经常遇到引用方面的语法错误,学习本节之后将确保您能够熟悉如何使用它们,特别是当脚本中包含有类似 grep、sed 和 awk 的命令时。 提示:以下是本篇文章正文内容,下面案例可供参考 一、反斜线 a="<div id=""table_body""></div>" 先前用转义字符表示id,或者用单 引号 表示id,都无法查找。但是 双引号 用两个 双引号 来表示,则可以完成。所以说要定义一个 双引号 ,则需要用两个 双引号 来表示。这样就可以解决这类问题。
shell 中,单 引号 双引号 都可以用来表示字符串。但是它们之间有一些区别。 使用单 引号 包围的字符串中的所有字符都会被视为字面值,也就是说,不管是 变量 还是命令替换,都不会被解释执行。这意味着单 引号 中的特殊字符和转义字符都会被原样输出,不会被解释为特殊含义。 例如,下面的命令: echo 'Hello $USER' 输出结果为: Hello $USER 使用 双引号 包围的字符串中的特殊字符和 变量 会被解释执行。这意味着在 双引号 中, 变量 会被替换为其对应的值,而特殊字符会被解释为其特殊含义。 例如,下面的命令: echo "Hello $USER" 输出结果为: Hello <当前用户的用户名> 另外, 双引号 中还可以使用反斜杠来转义特殊字符,使其不被解释为特殊含义。 总之,使用单 引号 双引号 来表示字符串,要根据需要来选择,以便在不同的情况下获得所需的字符串解释行为。