脚本与用户交互以及if条件判断
如何在shell脚本与用户交互
利用read name age
指定变量信息
echo $name
来接收用户输入
echo $age
来接收用户输入
这个例子可能不清晰我们利用read -p
"清输入您的姓名” name
输入:xiaoyu
echo $name
(接收用户的输入)
我们再看个例子,先进入bash不然用不了-p
read -t 10 -p "请输入您的姓名" name
-t(指定时间)
(这个例子是讲如果我们用户10秒没有输入自动退出程序)
那么如果我们在10秒内输入了就会执行成功
如何限制用户输入的字符个数?,只有输入三个的时候才不会退出,少于大于都会退出
read -n 3 -t 10 -p "请输入您的姓名:" name
-n(限制字符输入的数量)
用脚本编写模拟
vim i.sh
read -p "请输入您的姓名:" name
echo "您输入的姓名是:$name,请您确认!"
关系运算符
再讲讲在脚本环境中如何简单的做条件判断
vim o.sh
首先定义两个变量,然后通过if条件判断来进行两个简单的条件判断再接入关系运算符,
-eq(相等)
-lt(小于)
-gt(大于)
-ne(不等于)
else(反转)
只能对数值进行判断,无法对这个字符串进行判断
脚本如下
num1=89
num2=89
if [ $num1 -eq $num2 ] : then
echo 相等
else
echo 不相等
fi
[]我们可以换成test进行测试
num1=89
num2=89
if test $num1 -eq $num2 : then
echo 相等
else
echo 不相等
fi
num1=78
num2=89
这两行代码分别定义了两个变量num1和num2,并给它们赋予了初始值,num1被赋值为78,num2被赋值为89。
if [ $num1 -eq $num2 ] then
echo 相等
else
echo 不相等
fi
条件判断部分:
if [$num1 -eq $num2]
:这里使用if语句来进行条件判断。在if语句的条件表达式中,
[](注意实际使用时[和它里面的内容、]和它前面的内容都要有空格隔开,这里为了方便说明先按紧凑格式写),在SheIl脚本中用于进行各种测试操作。
$num1
和$num2
是对前面定义的两个变量num1和num2的引用获取它们的值来参与条件判断。,-eq是一个比较操作符,用于判断两个值是香相等(在数值比较的语境下,这里就是判断num1值和num2的值是否相等)。,所以整个条件表达式就是在测试num1的值和num2的值是否相等。
执行逻辑部分:
then:如果前面的条件判断结果为真(即num1的值和num2的值确实相等),那么就会执行then后面的代码块。
echo相等:当条件满足(也就是num1和num2相等)时,会执行这行代码,通过echo命令输出字符串“相等”
else:如果前面的条件判断结果为假(即num1的值和num2的值不相等),就会执行eIse后面的代码块。
echo不相等:当条件不满足(也,就是.num1,和num2不相等)时,会执行这行代码,通过echo命令输出字符串“不相
空
总体来说,这段代码就是先定义了两个具有不同初始值的变量,然后通过条件判断来比较这两个变量的值是否相等:并根据判断结果输出相应的字符串(“相等”或者“不相等”)。