您的位置:首页 > 游戏 > 游戏 > 建筑设计作品集_惠州网站建设排名_外链网盘网站_seo中文意思是

建筑设计作品集_惠州网站建设排名_外链网盘网站_seo中文意思是

2024/12/28 10:42:02 来源:https://blog.csdn.net/weixin_44334319/article/details/144147085  浏览:    关键词:建筑设计作品集_惠州网站建设排名_外链网盘网站_seo中文意思是
建筑设计作品集_惠州网站建设排名_外链网盘网站_seo中文意思是

    声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频)

本章课程链接:shell编程(4)脚本与用户交互以及if条件判断_哔哩哔哩_bilibili

脚本与用户交互

read

在 Shell 脚本中,read是一个非常有用的内置命令。它的主要功能是从标准输入(通常是用户通过键盘输入)读取数据,并将读取到的数据赋值给一个或多个变量。这使得脚本能够与用户进行交互,获取用户输入的信息,如用户名、密码、文件路径等各种数据。

基本语法格式


一般形式为

read [选项] [变量名1] [变量名2...]

例如,read name,这里read命令会等待用户输入,将用户输入的内容赋值给变量name。如果有多个变量,如read name age city,用户输入的内容会按照空格分割,并依次赋值给name、age和city变量。

常用选项


-p(prompt)选项


用于在读取用户输入之前显示一个提示信息。这个提示信息可以告诉用户需要输入什么内容,使得交互更加友好。
 

read -p "Please enter your username: " user

当脚本执行到这一行时,会先在终端显示Please enter your username:作为提示,然后等待用户输入用户名,并将输入的内容赋值给变量user。

-n(number of characters)选项


指定要读取的字符数。当用户输入达到指定的字符数后,read命令就会停止读取。
 

read -n 5 password

此时,脚本会读取用户输入的前 5 个字符作为密码,并将其赋值给变量password。例如,用户输入abcdef,那么变量password的值就是abcde。

-t(timeout)选项

设置读取输入的超时时间,单位是秒。如果在指定的时间内没有接收到用户输入,read命令会结束等待,脚本继续执行。

read -t 10 -p "Enter a number within 10 seconds: " num

脚本会显示提示信息Enter a number within 10 seconds:,并等待用户输入一个数字。如果 10 秒内用户没有输入,read命令就会结束,脚本继续执行后面的内容。如果用户在 10 秒内输入了内容,那么输入的内容会赋值给变量num。

-s(silent)选项

用于在读取用户输入时不显示输入的内容,通常用于读取密码等敏感信息。
 

read -s password

当用户输入密码时,终端不会显示输入的字符,输入完成后,密码会赋值给变量password。

利用read进行交互,批量采集信息

输入信息

echo打印信息

利用read -p "请输入你的姓名" name 输入

 read -t 10 -p "请输入你的姓名:" name

解释:我们用户10秒没有输入自动退出程序,那么如果我们在10秒内输入了就会执行成功

如何限制用户输入的字符个数?

read -n 3 -t 10 -p  "请输入你的姓名:" name

-n (限制字符输入的数量)

-t (如果十秒不输入的话,自动退出)

请输入你的姓名并且限制你的字符串为三个:

vim 12.sh

read -p "请输入你的姓名:" name
echo "你输入的姓名是:$name,请你确认!"

关系运算符

在 Shell 脚本中,关系运算符用于比较两个操作数的值,以确定它们之间的关系,如大小关系、相等关系等。这些关系运算符通常在条件语句(如if语句)中使用,来根据不同的条件执行不同的代码块。

常见的关系运算符
-eq(等于)
用于比较两个数值是否相等。如果相等,条件为真。例如,在if语句中:

a=5
b=5
if [ $a -eq $b ]; thenecho "a is equal to b"
elseecho "a is not equal to b"
fi

这里,因为a和b的值都是 5,所以会输出a is equal to b

ne(不等于)
用于判断两个数值是否不相等。例如:

a=3
b=5
if [ $a -ne $b ]; thenecho "a is not equal to b"
elseecho "a is equal to b"
fi

由于 3 不等于 5,所以会输出a is not equal to b。

-gt(大于)
用于比较第一个数值是否大于第二个数值。例如:

a=7
b=5
if [ $a -gt $b ]; thenecho "a is greater than b"
elseecho "a is not greater than b"
fi

因为 7 大于 5,所以会输出a is greater than b

-lt(小于)
用来判断第一个数值是否小于第二个数值。例如:

a=3
b=5
if [ $a -lt $b ]; thenecho "a is less than b"
elseecho "a is not less than b"
fi

-ge(大于等于)
检查第一个数值是否大于或等于第二个数值。例如:
 

a=5
b=5
if [ $a -ge $b ]; thenecho "a is greater than or equal to b"
elseecho "a is less than b"
fi

因为a和b相等,满足大于或等于的条件,所以输出a is greater than or equal to b。

-le(小于等于)
用于确定第一个数值是否小于或等于第二个数值。例如:

a=3
b=5
if [ $a -le $b ]; thenecho "a is less than or equal to b"
elseecho "a is greater than b"
fi

if - else语句结构中的else基本概念
在 Shell 脚本中,if语句用于根据条件执行不同的代码块。当if语句中的条件为真时,会执行if代码块中的内容;而当条件为假时,就会执行else代码块中的内容。else是if语句的一部分,用于提供条件不成立时的备用执行路径。
例如,下面的脚本用于判断两个数的大小:

a=5
b=3
if [ $a -gt $b ]; thenecho "$a is greater than $b"
elseecho "$a is not greater than $b"
fi

这里,首先判断$a -gt $b(即 5 是否大于 3)这个条件。因为条件为真,所以会执行if代码块中的echo "$a is greater than $b",输出5 is greater than 3。如果将a的值改为 2,那么$a -gt $b条件为假,就会执行else代码块中的echo "$a is not greater than $b"。

 else与多个关系运算符结合使用
可以在if语句中使用多个关系运算符来构建复杂的条件判断,else依然用于处理这些复杂条件不成立的情况。
例如,判断一个数是否在某个区间内:

num=7
if [ $num -ge 5 ] && [ $num -le 10 ]; thenecho "$num is between 5 and 10 (inclusive)"
elseecho "$num is not between 5 and 10 (inclusive)"
fi

这里,if语句中的条件使用了-ge(大于等于)和-le(小于等于)两个关系运算符,判断$num是否在 5 到 10 这个区间内。如果num的值满足这个区间条件,就执行if代码块;否则执行else代码块。

else在嵌套if语句中的应用
在嵌套的if语句中,else可以出现在内层if语句和外层if语句中,用于处理不同层次的条件不成立情况。
例如,判断一个学生的成绩等级:

score=85
if [ $score -ge 90 ]; thenecho "A"
elseif [ $score -ge 80 ]; thenecho "B"elseif [ $score -ge 70 ]; thenecho "C"elseif [ $score -ge 60 ]; thenecho "D"elseecho "F"endendend
end

在这个嵌套的if结构中,外层if语句首先判断成绩是否大于等于 90 分。如果不满足,就进入第一个内层if语句,判断成绩是否大于等于 80 分,以此类推。每个else部分负责处理当前if条件不成立的情况,直到确定成绩所属的等级。这种结构可以很精细地划分不同的条件范围,通过else来确保所有可能的情况都有相应的处理代码。

注意事项
操作数的数据类型:关系运算符主要用于数值比较。如果操作数是字符串,可能会得到意外的结果。不过,在某些情况下,如使用-eq和-ne比较字符串时,会比较它们的长度是否相等和不相等。
空格的重要性:在使用关系运算符时,[和]与操作数之间需要有空格。例如,[ $a -eq $b ]是正确的格式,缺少空格可能会导致语法错误。同时,变量名与运算符之间也需要有空格,如$a -eq $b。

vim 13.sh:

num1=11
num2=89

if [ "$num1" -eq "$num2" ]; then
        echo "相等"
else
        echo "不相等"
fi

也可以使用test来更换[ ] 

条件判断部分:

if [ $num1 -eq $num2 ] :这里if语句来进行条件判断。在if语句的条件表达式中,[] (注意使用时该括号与里面的内容都要有空格隔开)在shell脚本中用于进行各种测试操作。

$num1和$num2是对前面定义的两个变量num1和num2的引用,获取它们的值来参与条件判断。-eq是一个比较操作符,用于判断两个值是否相等,。所以整个语句就是在判断两个值是否传相等。

执行逻辑部分:

then:如果前面的条件判断结果为真,那么就会then后面的代码块。

echo 相等:当条件满足时,会执行这段代码,通过echo输出字符串 “相等”

else:当前面的条件判断为假时,就会执行else后面的代码块。

echo 不相等:当前面的条件判断为假时,就会执行这段代码,通过echo输出字符串 “不相等”

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com