您的位置:首页 > 运维架构 > Shell

Linux进阶之bash编程(流程控制-for循环)

2016-04-20 18:20 1096 查看
bash脚本里定义后续命令执行日志输出路径

#!/bin/bash
logDir=`date +%F`
exec &>/tmp/logDir.log
//此次定义后续命令的执行输出日志路径
df -h
top

for循环
循环允许你重复一段代码固定次数,在循环代码执行期间,一个称为循环变量的特殊变量被赋予了不同的值;
for循环很适合处理命令行上的参数以及文件集,for结构的语法如下:
for name [in list]
do
statements
done
list为名称列表,如果in list被省略,列表默认为"$@",即命令行参数的引用列表。

3. 练习
例如:
获取执行脚本附带的参数并输出

for.sh:
#!/bin/bash
for fileDir in "$@"
do
echo  "$fileDir"
done
执行
#bash for.sh /var /opt /tmp
/var
/opt
/tmp


输出1-n,n为执行脚本带入的参数

for2.sh:
#!/bin/bash
for i in `seq $1`
do
echo "$i"
done
执行:
#bash for2.sh  3

1

2

3


计算从1加到n为多少,n为你执行该脚本时带入的参数?

vi for3.sh

#!/bin/bashfor
for i in `seq $1`
do
let  sum+=$i
done
echo "sum=$sum"

执行:#bash for3.sh 100
sum=5050
5秒倒计时

daojishi.sh
#!/bin/bash
n=5
for i in `seq 5`
do
echo "倒计时:$n"
let  n--
sleep 1
done
执行:#bash daojishi.sh
倒计时:5
倒计时:4
倒计时:3
倒计时:2
倒计时:1
阶乘算法,10的阶乘结果?
[craft@vp143 test]$ vi jiecheng.sh
#!/bin/bash
n=10
tmp=1
for
i in `seq $n`
do
let tmp=`expr $i \* $tmp`
echo
"$tmp"
done
执行:[craft@vp143
test]$ bash -i jiecheng.sh

1
2
6
24
120
720
5040
40320
362880
3628800
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux