如何在Bash中使用布尔值

888 阅读3分钟

布尔值可以包含两种类型的数据。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脚本中使用布尔值。