三、select/in 【用的相对来说比较少】
格式: select 变量 in 关键字 
do 
command 1 
... ... 
command n 
done 
select把关键字中的每一项做成类似表单,以交互的方式执行do和done之间的命令。
【示例】
  #!/bin/bash 
  # A test for select 
echo "What's your favorite OS?" 
echo 
select name in "UNIX" "Linux" "Windows" "Others" 
do 
  break 
done 
echo "Your select is $name"

四、case/esac
格式: case 变量 in 
字符串1) 
命令列表1 
;; 
... 
字符串n) 
命令列表n 
;; 
esac

五、while
格式: while 条件 
do 
命令 
done 
【无限:whill true】
【示例】
#! /bin/sh 
num=1 
while [ $num -le 10 ] 
do 
SUM=`expr $num \* $num` 
echo $SUM 
num=`expr $num + 1` 
done

六、untill
格式: until 条件 
do 
命令 
done 
until类似while循环,不同的是until是条件返回值为假时才继续执行。
【示例】
#!/bin/bash 
# A test for until 
until [ -x /etc/inittab ] 
do 
ls -l /etc/inittab 
exit 0 
done

七、跳出循环:break和continue 
break:跳出整个循环 
continue:跳过本次循环,进行下次循环

八、shift
参数左移,每执行一次,参数序列顺次左移一个位置,$#的值减1, 用于分别处理每个参数,移出去的参数不再可用
【示例】
#! /bin/sh 
if [ $# -le 0 ] 
then 
echo "Not enough parameters" 
exit 0 
fi 
sum=0 
while [ $# -gt 0 ] 
do 
sum=`expr $sum + $1` 
shift 
done 
echo $sum

函数应用

一、函数的定义: 
函数名 () 

命令序列 
}

二、函数的调用:不带() 
函数名 参数1 参数2 ...

三、函数中的变量: 
变量均为全局变量,没有局部变量

四、函数中的参数:
调用函数时,可以传递参数,在函 数中用$1、$2...来引用 
Shell 脚本调试 
sh -x script 这将执行该脚本并显示所有变量的值。 
sh -n script 不执行脚本只是检查语法的模式,将返回 所有语法错误。 
【命令最好使用绝对路径!】

【不用交互方式添加用户】
useradd mery
echo 123456 | passwd --stdin mery

【执行脚本所需要的权限】
1、该脚本拥有r权限 【不给x权限可以用sh执行】 2、对脚本所在目录有rx权限

转载于:https://blog.51cto.com/zhujifang/1380182

Linux 学习笔记_10_Shell编程_2_Shell编程语法(三)相关推荐

  1. Linux学习笔记---使用BusyBox创建根文件系统(三)

    目录 创建/etc/init.d/rcS 文件 创建/etc/fstab 文件 创建/etc/inittab 文件 创建/etc/init.d/rcS 文件 通过nfs加载根文件系统成功后,在串口终端 ...

  2. Linux学习笔记 -- rpm 与 shell 编程

    目录 rpm 与 YUM rpm 包的管理 rmp 包 查询 安装 卸载 yum 安装 JDK mysql 8.0 离线安装 Centos 7 忘记mysql的root密码 Shell 编程 shel ...

  3. Linux学习笔记---使用BusyBox创建根文件系统(四)

    目录 软件运行测试 设置程序为后台运行 设置开机自启动 外网连接测试 软件运行测试 进入到rootfs文件夹中新建一个drivers文件夹,用于存放编写的软件. 新建hello.c文件 输入以下代码 ...

  4. Linux学习笔记---使用BusyBox创建根文件系统(二)

    目录 向 rootfs 的"/lib "目录添加库文件 向 rootfs 的usr/lib 目录添加库文件 创建其他文件夹 根文件系统初步测试 向 rootfs 的"/l ...

  5. Linux学习笔记(3)- 网络编程以及范例程序

    Linux学习笔记(3)- 网络编程以及范例程序 前言 网络介绍 IP地址的介绍 端口和端口号的介绍 通信流程 socket介绍 TCP介绍 python3编码转换 TCP客户端程序开发流程 多任务版 ...

  6. 学习笔记:Java 并发编程②_管程

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 配套资料: ...

  7. 学习笔记:Java 并发编程①_基础知识入门

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 视频下载: ...

  8. 【学习笔记】C++ 核心编程(二)类和对象——封装

    内容来自小破站<黑马程序员C++>复习自用 [学习笔记]C++ 核心编程(二)类和对象--封装 4 类和对象 4.1 封装 4.1.1 封装的意义(一) 4.1.1 封装的意义(二) 4. ...

  9. 【Linux】Linux学习(四)Shell编程

    Linux学习(四)Shell编程 Shell概述 Shell脚本入门 变量 系统预定义变量 自定义变量 特殊变量 运算符 条件判断 流程控制(重点) if判断 case语句 for循环 while循 ...

最新文章

  1. Android 追加写入文件的三种方法
  2. VC++格式化输出单个字符和格式化输出十六进制的不同形式
  3. linux内核启动后门,Linux内核模块入门之简单内核后门
  4. 第一百二十期:终于有篇看的懂的B树文章了!
  5. 英国-新加坡联合博士奖学金(人工智能、数字医疗方向)
  6. Apache Kylin 与 ClickHouse 的对比
  7. [Python] L1-034. 点赞 团体程序设计天梯赛GPLT
  8. 使用jQuery Mobile快速开发手机站点
  9. OSChina 周六乱弹 —— 表白有风险,装逼需谨慎
  10. 频谱分析仪的作用是什么?TFN FAT811手持式频谱分析仪
  11. 【C语言练习——打印空心下三角及其变形】
  12. 谈谈如何做到从未来看向当代的能源技术
  13. Visio中画各种线条与箭头
  14. 《必然》二、奔跑吧,所有人都是菜鸡
  15. 树莓派用iPad做显示器
  16. Photoshop路径与笔刷轻松制作轻纱漫舞
  17. 数字图像处理 - 灰度变换与空间滤波
  18. c# MVC 网页开发
  19. thinkbook14重装系统
  20. Java版 猜数字小游戏

热门文章

  1. python+selenium个人学习笔记10-调用JavaScript和截图
  2. 大道至简第7,8章读后感
  3. POJ 2029 Get Many Persimmon Trees
  4. 关于左右滚动,控制某几列不动
  5. 5个步骤,绘制高质量的业务流程图
  6. 产品经理是种病,我竟已晚期
  7. 30岁的互联网人你靠什么而立?
  8. 京东产品负责人:数据如何高效驱动供应链?
  9. JavaScript字符串转数字的5种方法及其陷阱
  10. vueRouter-命名视图