由于条件判断和循环跟其他语言都大同小异,学过编程的话很好理解,这里只贴出格式,不具体写用法了。(select菜单会详细讲一下)

条件判断

if条件判断

普通if条件判断:

  1. if 判断条件1; then
  2. 条件为真的分支代码
  3. elif 判断条件2; then
  4. 条件为真的分支代码
  5. elif 判断条件3; then
  6. 条件为真的分支代码
  7. else
  8. 以上条件都为假的分支代码
  9. fi

嵌套if条件判断:

  1. if 判断条件1; then
  2. 条件为真的分支代码
  3. else
  4. if 判断条件2; then
  5. 条件为真的分支代码
  6. else
  7. 条件为真的分支代码
  8. fi
  9. fi
  10. ```
  11. ### case条件判断
  12. ```bash
  13. case 变量引用 in
  14. PAT1)
  15. 分支1
  16. ;;
  17. PAT2)
  18. 分支2
  19. ;;
  20. #...省略
  21. *)
  22. 默认分支
  23. esac

循环

for循环

普通for循环:

  1. for 变量名 in 列表;do
  2. 循环体
  3. don

嵌套for循环:

  1. for 变量名1 in 列表1;do
  2. 循环体1
  3. for 变量名2 in 列表2;do
  4. 循环体2
  5. done
  6. done

while循环

  1. while CONDITION; do
  2. 循环体
  3. done

until循环

  1. until CONDITION; do
  2. 循环体
  3. done

循环中使用continue和break

continue 结束本次循环,还会进入下一轮循环
break 结束全部循环,不会进入下一轮循环

循环工中使用shift跳过参数列表中的某项

用于处理参数不确定的情况,shift比较好用

while循环的特殊用法(遍历文件的每一行)

  1. while read line; do
  2. 循环体
  3. done < /PATH/FROM/SOMEFILE

select 菜单

  • select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示 PS3 提示符,等待用户输入。
  • 用户输入菜单列表中的某个数字,执行相应的命令
  • 用户输入被保存在内置变量 REPLY 中。
  • 可以和case结合使用。

下面举个和select和case结合使用的例子:

  1. PS3="Please choose your food(Input No.): "
  2. select food in "exit" "huimian" "juejiangmian" "laomo" "yangroutang"
  3. do
  4. case $food in
  5. "exit")
  6. echo Your choice is $REPLY
  7. echo "Thanks!"
  8. exit
  9. ;;
  10. "huimian"|"juejiangmian")
  11. echo Your choice is $REPLY
  12. echo "12 yuan"
  13. ;;
  14. "laomo")
  15. echo Your choice is $REPLY
  16. echo "15 yuan"
  17. ;;
  18. "yangroutang")
  19. echo Your choice is $REPLY
  20. echo "20 yuan"
  21. ;;
  22. *)
  23. echo "Dont's have this food"
  24. ;;
  25. esac
  26. done

trap 信号捕捉

  • trap '触发指令' 信号 :自定义进程收到系统发出的指定信号后,将执行触发指令 ,而不会执行原操作

  • trap '' 信号 :信号忽略信号的操作

  • trap '-' 信号 :恢复原信号的操作

  • trap -p:列出自定义信号操作

Linux shell编程语法的更多相关文章

  1. Linux Shell 编程语法

    原文地址:http://www.cnblogs.com/fhefh/archive/2011/04/13/2014967.html.感谢作者的无私分享 编写代码 在计划好要程序干什么以及如何使用程序的 ...

  2. linux —— shell 编程(编程语法)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...

  3. linux shell编程总结

    linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...

  4. Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||

    https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...

  5. linux shell 编程参考

    #!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...

  6. Linux Shell编程与编辑器使用详解

    <Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...

  7. 一文学完Linux Shell编程,比书都好懂

    一. Shell 编程 1. 简介 Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务. Shell 既是一种命令语言,又是一种程序设计语言. Shell scr ...

  8. 前端学习 linux —— shell 编程

    前端学习 linux - shell 编程 shell 原意是"外壳",与 kernel(内核)相对应,比喻内核外的一层,是用户和内核沟通的桥梁.shell 有很多种,国内通常使用 ...

  9. linux —— shell 编程(文本处理)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...

随机推荐

  1. A Reliability-Aware Network Service Chain Provisioning With Delay Guarantees in NFV-Enabled Enterprise Datacenter Networks

    文章名称:A Reliability-Aware Network Service Chain Provisioning With Delay Guarantees in NFV-Enabled Ent ...

  2. 【SVN】svn 查看项目的 svn 服务器地址目录(脱机状态下)

    #事故现场: 在无法连接到svn服务器地址的情况下,查看本地项目的svn的服务器地址目录: #事故分析 因为无法连接svn服务器,所以只能通过svn在本地存储的信息来获取svn的地址路径信息: #解决 ...

  3. HDU 5983(模拟魔方 模拟)

    题意是说给定一个 2*2 魔方的各个面的情况,问是否能转动不超过一次使得魔方复原. 思路是先在输入的时候统计一下已完成的面数,要想以最多一次的转动使得魔方复原,那么已完成的面数只能是 2 面或者 6 ...

  4. linux 只查看目录下文件夹

    只显示目录文件夹 ls -F |grep "/$" 显示 目录权限 ls -al |grep "^d" 只显示文件 ls -al |grep "^-& ...

  5. Linux文件权限命令及配置

    http://www.cnblogs.com/CgenJ/archive/2011/07/28/2119454.html

  6. 线程的start方法和run方法的区别

    run方法及结果 public class MyThread extends Thread { @Override public void run() { System.out.println(&qu ...

  7. css基础二

    1,文本 文本颜色: <style> body {color:red;} /*为body的所有字体设置字体颜色为红色*/ h1 {color:#00ff00;} /*为h1元素设置字体颜色 ...

  8. spawn-fcgi启动的一些报错问题

    spawn-fcgi启动报错 //编译生成bin文件,这里用到了fcgi和google的glog # g++ test.cpp -lfcgi -lglog -o test //运行 # spawn-f ...

  9. Mysql -- 外键的变种 三种关系

    一.介绍 因为有foreign  key的约束,  使得两张表形成了三种关系 多对一      多对多   一对一 二.如果找出两张表之间的关系 #.先站在左表的角度去找 是否左表的多条记录可以对应右 ...

  10. Machine Schedule poj1325

    Machine Schedule Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17454   Accepted: 7327 ...