大家五一劳动节快乐,我们继续来分享linux下的shell编程,今天是最后一篇shell编程系列文章,主要分享循环结构如何写。

一、for和while循环结构

在写这个之前,还是提示大家一下,这和我们c、c++里面的写的for、whil循环结构思想一样,只是规则稍微有点不一样仅此而已。

1、for循环结构格式和实战演示:

a、for循环书写格式:

for 变量名 in  取值列表do    命令序列done

b、案例演示:

#!/bin/bashfor i in 1 2 3 4 5do     echo $idone

演示结果:

root@txp-virtual-machine:/home/txp# source test.sh12345

2、while循环结构格式和实战演示:

a、while循环书写格式:

while 条件测试操作do    命令序列done

b、案例演示:

#!/bin/bashi=1j=10while [ $i -lt $j ]do     echo $i     i=$(($i+1))done

演示结果:

root@txp-virtual-machine:/home/txp# source test.sh123456789

注意:while后面的[]两边都有空格,[]后面有分号分号(如果do放在一行的话),i++的写法中有两层括号。

二、case语句:

shell中的case语句天生没有break,也不需要break,和C语言中的switch case不同。shell中的case默认就是匹配上哪个执行哪个,不会说执行完了还去执行后面的其他case(就好像shell中的case语言默认都带了break)。

1、case语句的格式书写:

case 变量值 in模式1)     命令序列1     ;;模式2)     命令序列2     ;;     .......*)    默认命令序列esac

2、案例演示:

#!/bin/bashvar=9;case $var in8)   echo "8"   ;;9)   echo "9"   ;;esac

演示结果:

root@txp-virtual-machine:/home/txp# source test.sh9

三、调用shell程序的传参

不知大家看到这个,有没有想到我们c语言里面int main 函数的标准写法呢:

int main(int argc , char *argv[])

之前的c语言系列文章里面有介绍这个(c语言main函数里的参数argv和argc解析),这里就不再介绍了。没错我们的shell接收用户的传参和这个思想类似的,在我们shell里面传参规则是:

$0对应的是当前Shell脚本程序的名称

$#对应的是总共有几个参数

$*对应的是所有位置的参数值

$?对应的是显示上一次命令的执行返回值

$1、$2、$3……则分别对应着第N个位置的参数值

我们具体来写一个案例演示:

#!/bin/bashecho $0 $? $* $# $1 $2 $3

演示结果:

root@txp-virtual-machine:/home/txp# source test.sh aa bb ccbash 0 aa bb cc 3 aa bb cc

这里稍微再注意我们c语言的传参:

C语言:./a.out aa bb cc   argc = 4, argv[0] = ./a.out, argv[1]是第一个有效参数····

注意到这里argc等于4,它把argv[0]也统计进去了;而我们shell当中是没有把$0统计到传入的参数统计当中去哦

四、总结:

好了,今天的内容就分享到这里了,感谢大家的支持,这期一系列shell编程文章就暂告一段落了,日后工作当中有遇到其他用法,再跟大家分享。明天开始继续分享uboot和linux内核的问章了,中间也会插入Makefile的文章。

如果各位喜欢的我的文章,可以在下方点个在看(或者转发也行),你的支持,就是我写文分享最大的动力,感谢您的支持。不忘初心,方得始终。

下方留言

shell for 循环_linux之shell编程(三)相关推荐

  1. shell—for循环

    shell-for循环 文章目录 shell-for循环 1.for循环基本概述 1.1 什么是循环 1.2 什么是for循环 2.for循环基础语法 3.for循环练习题 1.for循环基本概述 1 ...

  2. Linux Shell脚本入门教程系列之(十二)Shell until循环

    本文是Linux Shell脚本系列教程的第(十二)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上两篇文章Linux Shell系列教程之(十)Shell for循环 ...

  3. linux命令循环输出10个数,(三)Linux Shell编程——Shell常用命令(输出、判断、循环、函数、包含)...

    3. 常用命令 3.1 输出 3.1.1 echo命令 echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串.命令格式: echo arg name="coding" ...

  4. Linux的shell编程(三)

    接下来以bash为例向大家介绍shell程序设计的高级部分:shell编程的流程控制.调试方法及shell程序的运行方法,顺便也向大家介绍一下bash的内部命令. 四.shell程序设计的流程控制 和 ...

  5. Shell编程(三)grep sed awk文本处理三剑客

    上一章: Shell编程(二)_做测试的喵酱的博客-CSDN博客 一.ps命令 指令: ps 作用: 主要是查看服务器的进程信息 选项含义: -e:等价于 '-A' ,表示列出全部的进程 -f:显示全 ...

  6. shell while 结束循环_Linux技巧:使用bash read命令实现一个简易shell(完整版)

    在 Linux 上面,可以使用 bash 的 read 内置命令来读取用户输入. 当在 while 循环中不断调用 read 命令,并打印一些提示字符,如 $.#.> 等,就可以不断接收用户输入 ...

  7. shell编程(三) : [Linux基础] Linux 环境变量

    接上一篇文章Linux shell编程(二): Linux shell基础 2.3 Linux环境变量 bash shell用一个叫作环境变量(environment variable)的特性来存储有 ...

  8. linux shell 宏定义_Linux系统和Shell命令行简介,走上数据分析之路

    122Linux系统和Shell命令行简介,走上数据分析之路 本节作者:刘永鑫 中国科学院遗传与发育生物学研究所 版本1.0.2,更新日期:2020年8月31日 本项目永久地址:https://git ...

  9. Linux Shell常用技巧(十二) Shell编程

    二十三. Bash Shell编程:  1.  读取用户变量:     read命令是用于从终端或者文件中读取输入的内建命令,read命令读取整行输入,每行末尾的换行符不被读入.在read命令后面,如 ...

最新文章

  1. 【转】ibatis的简介与初步搭建应用
  2. jqgrid 让隐藏的列在编辑状态时出现且可编辑
  3. 识别图片并可视化_识别交通锥,特斯拉驾驶信任提升的一小步
  4. 173. Binary Search Tree Iterator
  5. 窗体的布局 1124
  6. 华为机试HJ28:素数伴侣
  7. 自定义binder架构的 client/ server组件
  8. java 缓存 框架_5个常用的Java分布式缓存框架
  9. 远程调试监视器 已在计算机上关闭,错误:“Microsoft Visual Studio 远程调试监视器”(MSVSMON.EXE) 似乎没有在远程计算机上运行。...
  10. BeagleboneBlack上u-boot的MLO文件是哪里来的
  11. 2019年2月1日训练日记
  12. 航天环宇提交招股书上会稿:计划募资6亿元,控股股东为李完小
  13. 网络安全学习小结--kali基本工具、webshell、代码审计
  14. 简单的python抢红包脚本-Python自动抢红包,超详细教程,再也不会错过微信红包了...
  15. 玩游戏掉帧严重?看过来!
  16. 用循环输出二十六个小写英文字母的内容(需要类型转换)--java作业
  17. 英国五大基金公司正在探索区块链
  18. ceph分布式存储安装及简单使用
  19. 百得利控股拟赴港上市:经营业绩下滑,实控人周小波为德国籍华人
  20. 激活anaconda环境(是纯纯初学者在学习,最后成功的办法,如有不妥敬请赐教)

热门文章

  1. 水很深的深度学习-Task02机器学习基础
  2. 大数据分析平台架构有哪些
  3. python用正则表达式提取中文_python3.x提取中文的正则表达式示例代码
  4. ajax无刷新提交表,Ajax无刷新提交表单和显示
  5. L2-006 树的遍历(建树)
  6. vue props 多类型_一个TypeScript简例,以及Vue支持TS的一些些事儿
  7. edge chrome Android,微软Edge浏览器安卓版已上架:采用Chrome引擎
  8. 至商3000服务器信息,至商3000企业管理系统
  9. App测试中ios和Android的区别1
  10. LayuI固定块关闭