08年1月
BASH初学者指南 - 比较东西
在BASH教程的前一部分中,我们研究了条件语句 。
该指南很长,但实际上只显示了如何控制逻辑流程。 本指南显示您可以比较变量的不同方式。
上图显示了本周指南中的第一个例子:
#!/斌/庆典
NAME1 = “加里”
NAME2 = “鲍勃”如果[“$ name1”=“$ name2”]
然后
回声“名称匹配”
其他
回声“名称不匹配”
科幻
在上面的脚本中,我定义了名为name1和name2的两个变量,并为它们分配了值“gary”和“bob”。 由于变量包含在引号之间,所以它们被称为字符串变量,随着教程的继续,它们变得更加相关。
所有脚本都会比较$ name1和$ name2的值,如果它们匹配,则输出字符串“名称匹配”,如果它们不输出字符串“名称不匹配”。
$ name1和$ name2变量之间的引号是重要的,因为如果它们中的任何一个的值没有被设置,那么脚本仍然可以工作。
例如,如果$ name1从未设置,那么你会比较“”和“bob”。 如果没有引号,你会留下=“bob”,这显然会失败。
您也可以使用!=表示法来定义不等于,如下所示:
如果[“$ name1”!=“$ name2”]
08年2月
BASH初学者指南 - 比较字符串
在上面的例子中,测试比较了相同的两个字符串,并且问问题在字母表中bob之前是否加入?
很明显,答案是否定的。
该脚本引入了小于运算符(<)。 由于小于运算符也用于重定向,所以必须用斜杠(\)将其转义,意味着小于这个原因,因此在上面的脚本中我比较了“$ name1”\ <“$ name2”。
小于的相反显然大于。 而不是使用\ <使用\>。
例如
如果[“$ name1”\>“$ name2”]
08年3月
BASH初学者指南 - 比较字符串
如果你想测试一个变量是否有值,你可以使用下面的测试:
如果[-n $ name2]
在上面的脚本中,我测试了是否给$ name2赋予了一个值,如果它没有“没有bob,没有bob出现”的消息。
08年04月04日
BASH初学者指南 - 比较字符串
在过去的幻灯片中,我们介绍了是否设置了变量。 有时虽然可能已经设置了一个变量,但它实际上可能没有值。
例如:
name1 =“”
要测试变量是否有值(即长度为零),请使用-z,如下所示:
如果[-z $ name1]
在上面的脚本中,我将$ name1设置为零长度字符串,然后使用-z进行比较。 如果$ name1的长度为零,则会显示消息“gary已晚上出去”。
08年05月05日
BASH初学者指南 - 比较数字
迄今为止所有的比较都是针对字符串的。 比较数字呢?
上面的脚本显示了比较两个数字的一个例子:
#!/斌/庆典
一个= 4
B = 5如果[$ a = $ b]
然后
回声“4 = 5”
其他
回声“4不等于5”
科幻
要将变量设置为数字,只需将其设置为不带引号。 然后您可以将数字与等号进行比较。
但我更喜欢使用以下运算符来比较两个数字:
如果[$ a -eq $ b]
08年06月
BASH初学者指南 - 比较数字
如果你想比较一个数字是否小于另一个数字,你可以使用小于运算符(<)。 与字符串一样,你必须用斜线来避开小于操作符。 (\ <)。
比较数字的更好方法是使用下面的符号:
- 小于-lt
- 小于或等于-le
- 大于-gt
- 大于或等于-ge
例如:
如果[$ a -lt $ b]
如果[$ a -le $ b]
如果[$ a -ge $ b]
如果[$ a -gt $ b]
08年7月
BASH初学者指南 - 比较数字
最后,对于本指南,如果要测试两个数字是否不同,可以使用小于和大于运算符(<>)或-ne,如下所示:
如果[$ a <> $ b]
如果[$ a -ne $ b]
08年08月
BASH初学者指南 - 比较运算符 - 总结
如果您错过了本指南的前三部分,您可以点击以下链接找到它们:
在本指南的下一部分中,我将介绍算术。