只有少数特殊字符使用字符串在命令行或脚本在Linux上:单引号、双引号和反斜杠。但规则并不是人们想象的那样明显。在这篇文章中,我们将看看简单的有点棘手的使用这些特殊字符。
回应的文本
的回声命令不需要任何种类的引用字符的大部分时间。你可以回声一个像这样的短语,不去考虑任何形式的报价。
美元回声输入你的名字:输入你的名字:
如果您想要使用引号,没有问题。这些命令将工作:
回声”输入你的名字:“echo美元”输入你的名字:“
在简单的情况下,它没有区别你是否使用单引号或双引号。事实上,你甚至可以在一个使用单和双引号回声如果你倾向于命令。而引用不添加任何东西,他们不妨碍。
美元回声“今天”一个“美好的一天!”
今天一个很好的一天!
封闭一套引号内,然而,产生明显的差异。内部报价将被保留。这里有两个例子:
美元回声“今天是‘好’的一天”今天是‘好’的一天
美元echo '今天是“好”的一天今天是“好”的一天
当你需要报价
有些时候需要报价。一个例子是当你想使用一个短语的撇号。毕竟,一个撇号和一个单引号是相同的在你的键盘,所以你不想混淆bash!
回声美元请不要吃雏菊>
在上面的命令,bash假设你仍然想为你报价,你开始和提示继续。为了避免bash认为你是开始而不是结束报价,附上双引号中的文本,它就会做你的目的:
美元的回声”请不要吃雏菊”请不要吃雏菊
当然,你可以做的另一件事是使用一个反斜杠字符。这告诉bash,你不想被撇号,但就显示出来。
回声请\ ' t美元雏菊雏菊请不要吃
你还可以使用反斜杠字符显示为一个词或短语:
美元呼应她喜欢称自己为\“Mamacita \”她喜欢称自己为“Mamacita”
报价和变量
每当你想要将多个字符串分配给一个变量,您需要使用引号。否则,bash将假定任何字符串后第一个命令,你正试图运行,不完成作业的价值。
当美元=下周bash:周:命令没有找到…回声时美元
把你指定的字符串引号解决问题。涉及任何错误!
当=“上周”echo $美元在上周
你使用的引用也使用变量时发挥作用。当你想要使用双引号包含一个变量输出。
美元今天=星期六回声“今天是今天美元”今天是星期六echo '今天是今天美元今天今天是美元
单引号显示变量的名称,而不是显示其价值。
比较字符串使用如果命令
引用的选择也不同,当你在一个比较字符串如果命令。如果一个变量有多层管柱价值,需要报价,报价的选择也有影响。如此:
最后=‘结束’如果美元(“最终”美元= = '最后'];然后现在>其他> >回声再见回音啊?> fi再见
单引号不会比较:
最后=‘结束’如果美元['最后美元' = = '最后'];然后现在>其他> >回声再见回音啊?> fi啊?
为什么会有这样的差异呢?因为,建议在前面的示例中,使用“最后的美元”在单引号将字符串“结束”的文字字符串最后的美元”,不分配给变量的值。呼应了变量在单引号或通过其输出到八进制转储(od bc)命令显示了如果上面命令查看:
回声的最后一美元美元
最后的美元
回声的最后一美元美元| od bc 156 044 146 151 0000000 141 154 012 l f i n \ n 0000007美元
总结
有两个单引号和双引号和反斜杠字符可以允许你工作在bash中有效地与字符串。有一些规则,你每次都要把它做到最好。