【Linux脚本编程】——Shell编程基础——001

 shell基础

目录

第1节 shell基础

1.1 什么是shell

1.1.1 shell对话方式

1.2 为什么使用shell编程

1.3 系统中的shell

第2节 变量

2.1 什么是变量

2.2 变量的分类

2.2.1 普通变量(局部变量)

2.2.2 环境变量(全局变量)

2.2.3 特殊变量

第3节 shell脚本的书写规范

3.1.1 脚本存放位置

3.1.2 脚本编辑使用vim

3.1.3 选择解释

3.1.4 文件名书写

3.1.5 书写脚本的规范和习惯


第1节 概念

1.1 什么是shell

Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出屏幕返回给用户。

1.1.1 shell对话方式

交互的方式:从键盘输入命令,通过/bin/bash的解析,可以立即得到Shell的回应,一问一答的方式

非交互式:shell脚本 

1.2 为什么使用shell编程

作为一个合格的运维人员必须掌握一种或一种以上的脚本语言,shell编程则是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,可以把繁琐重复的命令写到shell脚本中执行,节约时间,有效的提高运维人员的工作效率,减少不必要的重复工作时间。

1.3 系统中的shell

linux系统默认shell是bash

第2节 变量

2.1 什么是变量

x+y=20     x=10  y=? 未知数(变量)

一个未知数,随时可以变化的量叫变量

2.2 变量的分类

2.2.1 普通变量(局部变量)

只能在当前环境下使用,可以通过export命令临时把普通变量变为环境变量使用

[root@localhost ~]# ip=10.0.0.209    给变量赋值(把数据存放到变量中)
[root@localhost ~]# echo $ip
10.0.0.209
[root@localhost ~]# 

2.2.2 环境变量(全局变量)

1.大写

2.系统定义的

3.在大部分地方可以使用

2.2.3 特殊变量

类比记忆:

Linux和Java的对比:

echo  类似 System.out.println 效果

ip=10.0.0.09 等号两边不能有空格

read -p 类似 Scanner 提示用户录入信息

例如:

Linux:read -p "现在请输入一个文件名"  fn    

Java:Scanner sc =new Scanner(System.in);

第3节 shell脚本的书写规范

3.1.1 脚本存放位置

为了防止脚本乱放,统一存放在/shell/scripts/中

创建目录

3.1.2 脚本编辑使用vim

3.1.3 选择解释

在执行bash脚本的时候,内核会根据"#!"后的解释器来确定该用那个程序解释这个脚本中的内容。

3.1.4 文件名书写

文件名称一定要有意义,方便看出是干嘛用的脚本,并且以.sh结尾

#数字比较

numberCompare.sh 

3.1.5 书写脚本的规范和习惯

案例:

1、  放在统一目录下,方便查找

2、  书写脚本要用vim编辑【步骤】

  批量删除

  批量增加

  1.进入批量编辑模式(可视块)esc下ctrl+v  

  2.选择 批量增加的范围 , 这时可以配合指令d删除选中行u是撤销指令 o是插入指令(向下插入一行 )

  3.按  i 进行修改 ,下面显示插入状态即可编辑脚本了

       

  4.按esc 退出编辑状态 等等

       【录入】——》    wq:保存退出,q!强制退出  ——》并回车即可退出脚本编写

     

     5. 执行shell脚本——》输出数字10 13大小比较结果

     

3、 脚本文件名称以.sh结束

4、 脚本开头一定要指定解释器

5、 脚本中#代表注释,#后的内容不会执行,不用的命令等可以用#注释掉,脚本中尽量不要出现中文注释以免出现因字符集不                    同产生乱码

6、 代码符号书写规范

     1.成对的符号一定要都写出来再添加内容,避免遗忘漏写;如 "" '' []等

     2.流程控制语句一次书写完,再添加内容;(if 条件 ; then  内容;fi)

       3.书写的代码符号都是英文输入法格式

       4.通过缩进让代码易读

发布了234 篇原创文章 · 获赞 12 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Coder_Boy_/article/details/90178496