linux shell script程序之循环结构简介
来源:互联网 发布:ansys软件界面 编辑:程序博客网 时间:2024/05/04 19:09
在本文中, 我们来看看linux shell script的循环结构, 还是那句话, shell script虽然简单, 但一不小心就会出错, 比如, 我写出了如下的一个错误脚本:
#! /bin/bashread ni=1sum=0while [ $i -le $n ]do $sum=$[ $sum + $i ] $i=$[ $i + 1 ]doneecho $sum上面程序打算计算1-n的和, 但有问题, 因为赋值运算符的左边必须是左值啊, $sum和$i都是右值, 所以, 应该去掉$, 改后并运行, 结果如下:
[taoge@localhost learn_shell]$ cat a.sh #! /bin/bashread ni=1sum=0while [ $i -le $n ]do sum=$[ $sum + $i ] i=$[ $i + 1 ]doneecho $sum[taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ ./a.sh 1005050[taoge@localhost learn_shell]$
下面, 我们用let来改改, 得到:
[taoge@localhost learn_shell]$ cat a.sh #! /bin/bashread ni=1sum=0while [ $i -le $n ]do let sum=$sum+$i let i=$i+1doneecho $sum[taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ ./a.sh 1005050[taoge@localhost learn_shell]$
这个shell script赋个值还真麻烦, 跟C/C++完全没得比, 不过, 我们还是可以用相对较好的方法来计算表达之的值, 如下:
[taoge@localhost learn_shell]$ cat a.sh#! /bin/bashread ni=1sum=0while [ $i -le $n ]do((sum+=i))((i++))doneecho $sum[taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ ./a.sh1005050[taoge@localhost learn_shell]$
好吧, 说完while, 我们说说until, 其实until跟while就是个反东西, 看程序:
[taoge@localhost learn_shell]$ cat a.sh#! /bin/bashread ni=1sum=0until ! [ $i -le $n ]do((sum+=i))((i++))doneecho $sum[taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ ./a.sh1005050[taoge@localhost learn_shell]$
所以, 从这个意义上来讲, 我觉得until完全没有存在的必要了, 我们只需要认识它即可, 坚决不用它。
我们看看for, 这个还挺有意思的(颇有点C++11的范围for的意味, 当然Objective-C中也有), 且看:
[taoge@localhost learn_shell]$ cat a.sh#! /bin/bashread nsum=0for i in `seq $n`do((sum+=i))doneecho $sum[taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ [taoge@localhost learn_shell]$ ./a.sh1005050[taoge@localhost learn_shell]$
另外, 我们知道C/C++中有continue和break, 那shell script怎么能少这么重要的功能呢? 用法与C/C++非常类似, 我就不具体介绍了。
好的, linux shell script的循环结构就先介绍到这里了。 晚安。
0 0
- linux shell script程序之循环结构简介
- linux shell script程序之选择结构简介
- linux shell script 循环语句
- Linux Shell笔记之结构循环
- shell之循环结构
- Linux学习之shell script
- linux shell script中的函数简介
- Linux重新学习--shell script--控制结构
- linux shell脚本语言之循环结构与function用法
- shell之循环语句结构
- Linux Shell 之 Shell 基本控制结构(二)(循环结构)
- Shell Script(bash)简介
- Shell Script简介
- Shell Script简介
- linux基础之Shell Script入门介绍
- Linux学习笔记之:学习Shell Script
- linux基础之Shell Script入门介绍
- 【Unix/Linux.Shell Script】Shell & Shell Script
- 马儿可夫之家
- C++ vector用法
- ubuntu下搭建nfs服务器
- 动手实现 数据结构 之 “队列”
- Best Time to Buy and Sell Stock III
- linux shell script程序之循环结构简介
- CentOS7下安装PostgreSQL 9.4 与 phpPgAdmin
- 你听过,但是不太明白的几个词
- python中编码问题
- javaFX之3D图形——SubScene
- ubuntu 14.04 启动daytime服务
- 动手实现 数据结构 之 “AVL树”
- project Euler problem 9
- 压缩感知与AIC(模拟信息转换器)