BASH初学者指南 - 比较东西

08年1月

BASH初学者指南 - 比较东西

BASH教程 - 比较字符串。

在BASH教程的前一部分中,我们研究了条件语句

该指南很长,但实际上只显示了如何控制逻辑流程。 本指南显示您可以比较变量的不同方式。

上图显示了本周指南中的第一个例子:

#!/斌/庆典

NAME1 = “加里”
NAME2 = “鲍勃”

如果[“$ name1”=“$ name2”]
然后
回声“名称匹配”
其他
回声“名称不匹配”
科幻


在上面的脚本中,我定义了名为name1和name2的两个变量,并为它们分配了值“gary”和“bob”。 由于变量包含在引号之间,所以它们被称为字符串变量,随着教程的继续,它们变得更加相关。

所有脚本都会比较$ name1和$ name2的值,如果它们匹配,则输出字符串“名称匹配”,如果它们不输出字符串“名称不匹配”。

$ name1和$ name2变量之间的引号是重要的,因为如果它们中的任何一个的值没有被设置,那么脚本仍然可以工作。

例如,如果$ name1从未设置,那么你会比较“”和“bob”。 如果没有引号,你会留下=“bob”,这显然会失败。

您也可以使用!=表示法来定义不等于,如下所示:

如果[“$ name1”!=“$ name2”]

08年2月

BASH初学者指南 - 比较字符串

BASH教程 - 比较字符串。

在上面的例子中,测试比较了相同的两个字符串,并且问问题在字母表中bob之前是否加入?

很明显,答案是否定的。

该脚本引入了小于运算符(<)。 由于小于运算符也用于重定向,所以必须用斜杠(\)将其转义,意味着小于这个原因,因此在上面的脚本中我比较了“$ name1”\ <“$ name2”。

小于的相反显然大于。 而不是使用\ <使用\>。

例如

如果[“$ name1”\>“$ name2”]

08年3月

BASH初学者指南 - 比较字符串

BASH教程 - 比较字符串。

如果你想测试一个变量是否有值,你可以使用下面的测试:

如果[-n $ name2]

在上面的脚本中,我测试了是否给$ name2赋予了一个值,如果它没有“没有bob,没有bob出现”的消息。

08年04月04日

BASH初学者指南 - 比较字符串

BASH教程 - 比较字符串。

在过去的幻灯片中,我们介绍了是否设置了变量。 有时虽然可能已经设置了一个变量,但它实际上可能没有值。

例如:

name1 =“”

要测试变量是否有值(即长度为零),请使用-z,如下所示:

如果[-z $ name1]

在上面的脚本中,我将$ name1设置为零长度字符串,然后使用-z进行比较。 如果$ name1的长度为零,则会显示消息“gary已晚上出去”。

08年05月05日

BASH初学者指南 - 比较数字

BASH教程 - 比较数字。

迄今为止所有的比较都是针对字符串的。 比较数字呢?

上面的脚本显示了比较两个数字的一​​个例子:

#!/斌/庆典

一个= 4
B = 5

如果[$ a = $ b]
然后
回声“4 = 5”
其他
回声“4不等于5”
科幻

要将变量设置为数字,只需将其设置为不带引号。 然后您可以将数字与等号进行比较。

但我更喜欢使用以下运算符来比较两个数字:

如果[$ a -eq $ b]

08年06月

BASH初学者指南 - 比较数字

BASH教程 - 比较数字。

如果你想比较一个数字是否小于另一个数字,你可以使用小于运算符(<)。 与字符串一样,你必须用斜线来避开小于操作符。 (\ <)。

比较数字的更好方法是使用下面的符号:

例如:

如果[$ a -lt $ b]

如果[$ a -le $ b]

如果[$ a -ge $ b]

如果[$ a -gt $ b]

08年7月

BASH初学者指南 - 比较数字

BASH教程 - 比较数字。

最后,对于本指南,如果要测试两个数字是否不同,可以使用小于和大于运算符(<>)或-ne,如下所示:

如果[$ a <> $ b]

如果[$ a -ne $ b]

08年08月

BASH初学者指南 - 比较运算符 - 总结

如果您错过了本指南的前三部分,您可以点击以下链接找到它们:

在本指南的下一部分中,我将介绍算术。