题目:编写shell脚本,输入一个数字n,并求数字1-n的和
问题代码:
#!/bin/bash
read -p "please input a number n": n
sum=0
if [ $n - lt 1 ]
then echo "please input a number > 1:"
else
for `seq 1 $n`
do sum = $[$sum + $n]
done
echo $sum
fi
分析:for调取变量的时候首先得有一个变量,for都没有变量调取肯定执行不成功
修改之后的代码:
#!/bin/bash
read -p "请输入一个大于1的数字:" n
sum=0
for i in `seq 1 $n`
do
sum=$[$sum + $i]
done
echo $sum
分析:sum = $[$sum + $i]这条代码sum和等于之间不要加空格,加空格之后执行不了
最终代码:
#!/bin/bash
n=0
while [ $n -lt "1" ];do
read -p "请输入一个数字:" n
done
sum=0
for i in `seq 1 $n`;do
sum=$[$sum + $i]
done
echo $sum
注意:-lt表示小于则为真
执行结果:
[root@localhost shell]# bash sum.sh
请输入一个数字:0
请输入一个数字:-1
请输入一个数字:4
10