学习Linux总结-day1之shell脚本-循环
我们在学习其他高级语言的时候,学习循环 都学过那些?
for while do while 一般来说就这三个
我今天在学习shell脚本主要学习了 for 和 while 循环
(ps:linux 中没有 do while)
话不多说 先上段代码
for((i=1;i<=9;i++ ))
do
for((j=1;j<=i;j++ ))
do
echo -n $i*$j=`expr $i \* $j`" "
done
echo
done
结果
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
如你所见 就是一个99乘法表
中间有一些需要注意的点 是我在学习其他语言时候一些别扭的点
就是关于换行 echo 是默认换行的 加 -n 是取消换行
此外 for 还有另一种形势
for i in `seq 9`
do
for j in `seq $i`
do
echo -n $i*$j=`expr $i \* $j`" "
done
echo
done
这个就是用另一种形式 的99乘法表
需要注意的是 seq 左右两边的 不是引号 而是 tab键 上面的波浪键(我是这么叫的。。。)
下面我说一下 和while循环
i=$RANDOM
i=`expr $i % 100 + 1`
while ((1))
do
echo "您猜个数"
read j
if [ $i -eq $j ]
then
echo "您猜对了"
break
elif [ $i -lt $j ]
then
echo "您猜大了"
else
echo "您猜小了"
fi
done
这是昨天 学习 while 做的一个小脚本 猜数字游戏 猜对退出 1-100随机数
while 其实 除了 循环变量 和增量这些 需要自己写 感觉还是挺麻烦的 不过 他有他自己的好处
语法其实还是和 for 循环 挺相似的
下面还有一些我跟做的小作业
#!/bin/bash
i=0
sum=0
while [ $i -le 100 ]
do
sum=`expr $i + $sum `
i=`expr $i + 1 `
done
echo $sum
#!/bin/bash
pro=1
i=1
while [ $i -le 10 ]
do
pro=`expr $pro \* $i`
i=`expr $i + 1 `
done
echo $pro
#!/bin/bash
[ ! $# -eq 1 ] && echo "args error!!!" && exit 1
id $1 >&/dev/null && echo "user exist" && exit 1
useradd $1 >&/dev/null && echo $1 | passwd --stdin $1 >&/dev/null && echo "user add success" && exit 1
echo "i don't know ,user add fail" && exit 1
关于循环我自己学习的可能不完善 如果有什么错误 指出就好 毕竟是学习笔记