Linux 18shell编程

1.介绍

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive),Shell还有一种执行命令的方式称为批处理(Batch),用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令。Shell脚本和编程语言很相似,也有变量和流程控制语句,但Shell脚本是解释执行的,不需要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到Shell提示符下执行。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
在这里插入图片描述

2.基础知识

2.1脚本以 #!/bin/bash 开头:告诉解释器以bash来解析脚本;

1.编写mybash.sh文件:

#!/bin/bash
echo "This my first shell script"

2.修改权限

chmod +x myshell.sh

3.执行

./mybash.sh

2.2shell变量

2.2.1

在这里插入图片描述

2.2.2特殊的环境

在这里插入图片描述

2.3位置参数

在这里插入图片描述
在这里插入图片描述

2.4用户自定义变量

在这里插入图片描述

2.5shell中的特殊字符

2.5.1通配符

在这里插入图片描述

2.5.2引号

在这里插入图片描述

2.5.3顺序执行

在这里插入图片描述

2.5.4shell中的注释符号,反斜杠,后台运行

在这里插入图片描述

3.shell中的输入输出命令

3.1shell中的标准输入输出文件

在这里插入图片描述

3.2输入输出命令

3.2.1输入命令read

在这里插入图片描述

3.2.2输出命令echo

在这里插入图片描述

4.shell程序的程序控制语句

脚本的控制结构语句有三种基本的类型:
两路分支、多路分支以及一个或多个命令的循环执行。

Linux的bash中的两路分支语句是if语句,
多路分支语句是if-elif和case语句;
代码的循环执行语句是for、while和until语句。

4.1两路分支

在这里插入图片描述

格式为:
if
判断条件1
then命令1
1 elif 判断条件2
1 then 命令2
......
else 命令n
Fi
其中elif是else if的缩写

4.2测试语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3case 语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.4for语句

格式:

for variable [in argument-list]
do
      command-list
Done
其中的[in argumentlist]部分为可选项,由于它的不同又可有三种形式。
[in argumentlist]部分三种形式
[argument-list]为变量值 表
变量variable依次取值表中各字符串
[argument-list]为文 件的表达式
变量的值依次取当前目录(或指定目录)下与文件表达
式相匹配的文件名,每取值一一次,就进入循环体执行命
令表,直到所有匹配的文件 名取完为止。
[argument-list]为空
[argument-list]也可以用$*来代替,变量依次取位置
参数的值,然后执行循环体中的命令表,直至所有位置
参数取完为止。

4.5while语句

while expression
do
  command-list
I Done

作用:只要expression的值为真,则进入
循环体,执行command- list中的命令,然
后再做条件测试,直到测试条件为假时才终
止while语句的行

4.6until语句

unt expression
do
command-list
done
作用:只要expression的值为假, 就执行
command- lists的命令。

4.7break和continue语句

break命令可以从循环体中退出来。格式为:
break [n]
continue命令跳过循环体中在它之后的语
句,回到本层循环的开头,进行下-次循环。
格式为:
continue [n]

4.8算数表达式

在这里插入图片描述

5.自定义函数

在这里插入图片描述

Function( )
{
command-list
}

6.实例

6.1编写shell脚本,可以用键盘输入一个学生成绩(百分制),并转换为对应的成绩标准显示,如:优(90-100);良(80-89);中(70-79);及格(60-69);不及格(0-59)。

在这里插入图片描述
在这里插入图片描述

6.2请批量创建一个班的用户,建立组名如class0605,然后添加属于这个组的用户。用户名为:学号+姓名。每成功创建一个用户,在屏幕上显示用户名。

在这里插入图片描述

6.3. 编写一个Shell脚本,利用for循环把当前目录下所有*.c文件复制到指定的目录中,并显示复制后该目录内按文件大小排序的目录文件清单。

在这里插入图片描述

6.4. 编写一个Shell脚本,它把第二个位置参数及其以后的各个位置参数指定的文件复制到第一个位置参数指定的目录中。

在这里插入图片描述

6.5. 编写一个Shell脚本,根据键盘可以循环输入学生成绩(百分制),并显示对应的成绩标准(及格和不及格),按Q键退出,按其他键提示重新输入。

在这里插入图片描述
在这里插入图片描述

6.6让用户用键盘输入一个数字,程序可以由 1+2 +3+… 一直累加到用户输入的数为止,并输出算式和计算结果。

在这里插入图片描述

6.7用SHELL编程输出费波纳奇数列的前20项。

在这里插入图片描述

  • 7
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值