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

条件判断

if条件判断

普通if条件判断:

if 判断条件1; then
条件为真的分支代码
elif 判断条件2; then
条件为真的分支代码
elif 判断条件3; then
条件为真的分支代码
else
以上条件都为假的分支代码
fi

嵌套if条件判断:

if 判断条件1; then
条件为真的分支代码
else
if 判断条件2; then
条件为真的分支代码
else
条件为真的分支代码
fi
fi
```
### case条件判断
```bash
case 变量引用 in
PAT1)
分支1
;;
PAT2)
分支2
;;
#...省略
*)
默认分支
esac

循环

for循环

普通for循环:

for 变量名 in 列表;do
循环体
don

嵌套for循环:

for 变量名1 in 列表1;do
循环体1
for 变量名2 in 列表2;do
循环体2
done
done

while循环

while CONDITION; do
循环体
done

until循环

until CONDITION; do
循环体
done

循环中使用continue和break

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

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

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

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

while read line; do
循环体
done < /PATH/FROM/SOMEFILE

select 菜单

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

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

PS3="Please choose your food(Input No.): "
select food in "exit" "huimian" "juejiangmian" "laomo" "yangroutang"
do
case $food in
"exit")
echo Your choice is $REPLY
echo "Thanks!"
exit
;;
"huimian"|"juejiangmian")
echo Your choice is $REPLY
echo "12 yuan"
;;
"laomo")
echo Your choice is $REPLY
echo "15 yuan"
;;
"yangroutang")
echo Your choice is $REPLY
echo "20 yuan"
;;
*)
echo "Dont's have this food"
;;
esac
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. GDB disassemble

    前面几篇谈GDB调试程序的帖子,都对反汇编语焉不详.这里详细讨论一下disassemble/disass命令 反汇编一个函数disass func_name 反汇编一段内存地址, 第1个参数是起始地址 ...

  2. nginx使用ssl模块配置支持HTTPS访问,腾讯云申请免费证书

    开始我尝试用 let's encrypt 让http 变 https 官方:https://github.com/certbot/certbot 参考:https://www.cnblogs.com/ ...

  3. visual studio code运行时报错,Cannot find module 'webpack'

    前言 今天运行是visual studio code时,报了一个错误Cannot find module 'webpack' ,网上找了很多方法都没解决.下面一起来看看怎么解决 正文 报错: npm ...

  4. dubbo和zikkeper的使用

    1.先来一段异常看看:No provider available for the service 16:05:25.755 [localhost-startStop-1] WARN o.s.w.c.s ...

  5. python 的回调函数

    回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.有些库函数(library function)却 ...

  6. torch.utils.data.DataLoader()中的pin_memory参数

    参考链接:http://www.voidcn.com/article/p-fsdktdik-bry.html 该pin_memory参数与锁页内存.不锁页内存以及虚拟内存三个概念有关: 锁页内存理解( ...

  7. keepalived健康检查方式【转】

    keepalived具有很强大.灵活的后端检测方式,其具有HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK 几种健康检测方式 ,在分别介绍各种检测方式之 ...

  8. tp5的phpword使用

    1.使用composer安装phpoffice/phpword phpword的使用文档:https://phpword.readthedocs.io/en/latest/index.html 2.使 ...

  9. 初识C语言(一)

    C语言的结构体 一个C程序就是由多个头文件和函数组成 #include<stdio.h> /* 包含头文件*/ int main() { printf('"hello world ...

  10. IntelliJ IDEA编辑器光标定位错误的问题!

    这几天我的IntelliJ IDEA编辑器总出现一个问题 打开一个项目文件后 点击文件内容无法获得输入光标,不能编辑文件 问题根源(个人): 因为近期本人测试项目时 在编辑器启动后,修改了本地时间 解 ...