Shell字符串初值的处理(求从1-x的和)

本案例要求编写一个脚本sumx.sh,求从1-x的和,相关要求如下:
• 从键盘读入x值
• 当用户未输入任何值时,默认按1计算
通过 v a r : − w o r d 判 断 变 量 是 否 存 在 , 决 定 变 量 的 初 始 值 。 步 骤 一 : 认 识 字 符 串 初 值 的 最 常 见 处 理 方 法 1 ) 只 取 值 , {var:-word}判断变量是否存在,决定变量的初始值。 步骤一:认识字符串初值的最常见处理方法 1)只取值, var:word1{var:-word}
若变量var已存在且非Null,则返回 $var 的值;否则返回字串“word”,原变量var的值不受影响。
变量值已存在的情况:

1.	[root@dyy ~]# XX=11
2.	[root@dyy ~]# echo $XX              //查看原变量值
3.	11
4.	[root@dyy ~]# echo ${XX:-123}      //因XX已存在,输出变量XX的值
5.	11

变量值不存在的情况:

1.	[root@dyy ~]# echo ${YY:-123}      //因YY不存在,输出“123”
2.	123

编写一个验证知识点的参考示例脚本如下:

1.	[root@dyy ~]# cat /root/test.sh
2.	#!/bin/bash
3.	read  -p   "请输入用户名:"   user
4.	[ -z $user ] && exit                    //如果无用户名,则脚本退出
5.	read  -p   "请输入密码:"   pass
6.	pass=${pass:-123456}                    //如果用户没有输入密码,则默认密码为123456
7.	useradd  $user
8.	echo "$pass"  | passwd   --stdin   $user

步骤二:编写sumx.sh脚本,处理read输入的初值
用来从键盘读入一个正整数x,求从1到x的和;当用户未输入值(直接回车)时,为了避免执行出错,应为x赋初值1 。
1)脚本编写参考如下

1.	[root@dyy ~]# vim sumx.sh
2.	#!/bin/bash
3.	read -p "请输入一个正整数:" x
4.	x=${x:-1}
5.	i=1; SUM=0
6.	while [ $i -le $x ]
7.	do
8.	    let SUM+=i
9.	    let i++
10.	done
11.	echo "从1到$x的总和是:$SUM"
12.	
13.	[root@dyy ~]# chmod +x sumx.sh

2)验证、测试脚本执行效果:

1.	[root@dyy ~]# ./sumx.sh
2.	请输入一个正整数:25                          //输入25,正常读入并计算、输出结果
3.	从1到25的总和是:325
4.	[root@dyy ~]# ./sumx.sh
5.	请输入一个正整数:70                         //输入70,正常读入并计算、输出结果
6.	从1到70的总和是:2485
7.	[root@dyy ~]# ./sumx.sh
8.	请输入一个正整数:                          //直接回车,设x=1后计算、输出结果
9.	从1到1的总和是:1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值