布尔值可以包含两种类型的数据。Bash不支持布尔值,但任何bash变量都可以包含0或 "真"和1或 "假"。逻辑布尔运算符被bash支持。 当脚本需要根据变量的真假值来生成输出时,需要使用布尔值。本教程介绍了在bash脚本中声明和使用布尔值的方法。
例1:使用0或1声明布尔变量
本例介绍了在bash变量中使用布尔值0和1的方法。用下面的脚本创建一个bash文件,它将根据一个包含0或1的变量的值来打印一条信息。两个数值将被作为MCQ和描述性分数。如果mcq变量的值大于等于60,des变量的值大于等于50,那么通过的变量的值将被设置为1;否则,0将被设置为这个变量。接下来,将对传递的变量进行检查,以打印成功信息或失败信息。
#!/bin/bash
# Using 0 or 1 for declaring boolean values
#Take an integer value for MCQ marks
echo "Enter MCQ marks:"
read mcq
#Take an integer value for descriptive marks
echo "Enter Descriptive marks:"
read des
#Check the passing marks
if [[ $mcq>=60 && $des>=50 ]]; then
#Set 1 for true
passed=1
else
#Set 0 for false
passed=0
fi
#Print message based on the value of $passed
if [ $passed -eq 1 ]; then
echo "You have passed the exam."
else
echo "You have failed the exam."
fi
输出
根据输出结果,上述脚本已经执行了两次。在第一次执行时,70分被作为MCQ分数,65分被作为描述性分数。这两个值都是条件表达式的真值,并且1已经被设置为通过的变量。在第二次执行中,40被作为MCQ分数,80被作为描述性分数。40分的条件表达式返回假,0被设置为通过的变量。当通过的变量的值为1时,"你已经通过了考试 "被打印出来,当通过的变量的值为0时,"你没有通过考试 "被打印出来。

例2:使用 "true "或 "false "声明布尔变量
在这个例子中,我们可以看到在bash脚本中使用布尔值作为字符串的方法。用下面的脚本创建一个bash文件,通过使用 "true"和 "false"值来验证用户并识别用户的类型。在执行脚本后,用户名和密码将被从用户那里获取。管理员变量的值被初始化为 "false",当提供有效的用户名和密码时,它将被设置为 "true",并且用户名是 "admin"。接下来,有效变量和管理员变量的值将被检查,以打印欢迎信息或错误信息。
#!/bin/bash
# Using “true” or “false” for declaring boolean values
#Take the username
echo "Enter username:"
read username
#Take the password
echo "Enter password:"
read password
administrator="false"
#Check username and password
if [[ $username == "admin" && $password == "secret" ]]; then
#Set "true" for valid user
valid="true"
#Set "true" for administrator
administrator="true"
elif [[ $username == "fahmida" && $password == "67890" ]]; then
#Set "true" for valid user
valid="true"
else
#Set "false" for invalid user
valid="false"
fi
#Print message based on the values of $valid and $administrator variables
if [[ $valid == "true" && $administrator == "true" ]]; then
echo "Welcome Administrator."
elif [[ $valid == "true" && $administrator == "false" ]]; then
echo "Welcome $username."
else
echo "Username or Password is invalid."
fi
输出
根据输出结果,上述脚本已经执行了三次。在第一次执行中,管理员的有效用户名和密码已经给出,并且 "欢迎管理员"的信息已经打印出来。在第二次执行中,已经给出了有效的用户名和密码,即fahmida,并且打印了 "Welcome fahmida"信息。在第三次执行中,给出了一个无效的用户名和密码,并且打印了错误信息 "用户名或密码无效"。

例3:使用True或False声明布尔变量
在这个例子中显示了在bash脚本中使用布尔值作为一个字符串的方法。用下面的脚本创建一个bash文件,它将根据一个包含True或False值的变量的值来打印一条信息。 在执行该脚本后,类似变量的值将根据用户的输入来设置。将根据like变量来打印一条信息。
#!/bin/bash
# Using True or False for declaring boolean values
echo "Do you like programming?(Y/N)"
# Take input from the user
read answer
# Check the input values
if [[ $answer == 'Y' || $answer == 'y' ]]; then
#Set True for true value
like=True
elif [[ $answer == 'N' || $answer == 'n' ]]; then
#Set False for false value
like=False
else
echo "Invalid answer."
exit 1
fi
#Check the valie of $like variable
if [ $like = True ] ; then
echo 'Glad to know that you like programming.'
else
echo 'You can learn programming.'
fi
输出
根据输出结果,上述脚本已经执行了三次。在第一次执行中,'y'作为输入值,将True值设置为同类变量,并打印出信息,"很高兴知道你喜欢编程。"。在第二次执行中,'n'作为输入值,将'false'设置到同类变量中,并打印出信息,"你可以学习编程。"。

总结
在本教程中,我们用多个例子解释了如何在bash脚本中实现布尔变量的功能,以帮助读者在bash脚本中使用布尔值。