shell——脚本退出及参数迁移

编程入门 行业动态 更新时间:2024-10-27 21:23:25

shell——<a href=https://www.elefans.com/category/jswz/34/1771291.html style=脚本退出及参数迁移"/>

shell——脚本退出及参数迁移

脚本退出及参数迁移

.### 问题
本案例要求编写两个Shell脚本,相关要求如下:
整数检测脚本chkint.sh:能够检查从键盘键入的值,如果是整数(利用expr运算的返回值来检测)则显示输入的整数结果,否则报错退出
整数求和脚本mysum.sh:整数值以位置参数提供,个数不定

方案

由于Shell默认不支持小数运算,因此可以利用expr对提供的整数值进行运算,若执行报错,则说明提供的值不合法。比如:

[root@svr5 ~]# X=1234  							//整数值变量
[root@svr5 ~]# expr $X + 1  						//正常参与运算
1235
[root@svr5 ~]# echo $?  							//执行状态正常
0
[root@svr5 ~]# X=abc  								//非整数变量
[root@svr5 ~]# expr $X + 1  						//运算时报错
expr: 参数数目错误
[root@svr5 ~]# echo $?    							//执行状态异常
2

shift操作用来迁移位置变量,比如执行 ./mysum.sh 10 20 30操作,则对于脚本mysum.sh来说,第一个位置变量$1的值为10、第二个位置变量$2的值为20、第三个位置变量$3的值为30。
若在脚本mysum.sh中执行一次shift操作,则$1的值变为20、$2的值变为30、$3的值为空。
再执行一次shift操作,则$1的值变为30、$2和$3的值都为空。
再执行一次shift操作,则$1、$2、$3的值都为空,相当于所有位置参数都丢弃了,位置参数的总个数为0。

步骤

实现此案例需要按照如下步骤进行。
步骤一:编写脚本chkint.sh
1)编写脚本文件

[root@svr5 ~]# vim chkint.sh 
#!/bin/bash
read -p "请输入一个整数:" NUM
if expr $NUM + 1 &> /dev/null
thenecho "您输入的整数是:$NUM"
elseecho "您输入的不是整数,请重新执行本程序。"exit 10
fi[root@svr5 ~]# chmod +x chkint.sh

2)测试脚本执行效果

[root@svr5 ~]# ./chkint.sh 
请输入一个整数:1234
您输入的整数是:1234
[root@svr5 ~]# ./chkint.sh 
请输入一个整数:12.34
您输入的不是整数,请重新执行本程序。

步骤二:编写mysum.sh脚本文件
1)编写脚本文件

[root@svr5 ~]# vim mysum.sh 
#!/bin/bash
SUM=0
while [ $# -gt 0 ]
dolet SUM=SUM+$1shift
done
echo "The SUM is : $SUM"

[root@svr5 ~]# chmod +x mysum.sh
2)测试脚本执行效果

[root@svr5 ~]# ./mysum.sh 10 20 30
The SUM is : 60
[root@svr5 ~]# ./mysum.sh 12 34 56 78
The SUM is : 180
[root@svr5 ~]# ./mysum.sh 111 222 333 444 555
The SUM is : 1665

更多推荐

shell——脚本退出及参数迁移

本文发布于:2023-07-28 16:33:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1251047.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:脚本   参数   shell

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!