Shell编程规范与变量

目录

引言

一、Shell脚本概述

1、Shell脚本的概念

2、Shell脚本应用场景

3、Shell的作用

4、Shell编程规范

(1)编写脚本代码

(2)赋予可执行权限:是脚本具有可执行属性

(3)执行脚本文件

(4)更完善的脚本构成

5、重定向操作

(1)交互式硬件设备

(2)重定向操作

6、管道操作符号“|”

二、Shell脚本变量

1、变量的作用、类型

(1)变量的作用

(2)变量的类型

2、自定义变量

(1)echo命令定义一个新的变量

(2)赋值时使用引号

(3)交互式定义变量

(4)设置变量的作用范围

(5)export命令

(6)整数变量的运算

3、特殊变量

(1)环境变量

(2)只读变量

(3)位置变量

(4)预定义变量

总结


引言

伴随着Linux系统的服务器应用越来越多,维护工作中存在着大量重复性的输入和交互操作,不仅费时费力还容易出错,自动化的维护越来越重要,这时编写Shell脚本程序,能够自动化、批量的解决维护工作,从而减轻了管理员本身的负担,从而提升工作效率,事半功倍。

一、Shell脚本概述

1、Shell脚本的概念

(1)Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户。这种对话方式可是交互也可以是非交互式的,我们所输入的命令计算机是不识别的,这时就需要一种程序来帮助我们进行翻译,变成计算机能识别的二进制程序,同时又把计算机生成的结果返回给我们。

(2)不同的shell具备不同的功能,shell还决定了Linux中默认的shell是/bin/bash,流行的shell有ash、bash、ksh、csh、zsh等,不同的shell都有自己的特点以及用途,目前大多数linux系统默认使用的是bash shell,默认登陆shell是/bin/bash,可以查看/etc/passwd文件里注明。

总结:将需要执行的命令保存到一个文件中,按照顺序执行,它不需要编译,它是解释型的。

2、Shell脚本应用场景

(1)自动化完成软件的安装部署,如安装部署LAMP架构服务;自动化完成系统的管理,如批量添加用户;自动化完成备份,如数据库定时备份。

(2)在需要完成大量复杂、重复性的工作时,不需要在命令行重复执行命令,直接运行shell脚本即可,大大的节省了时间提高了效率。

3、Shell的作用

(1)Linux系统中的Shell是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个"命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。

(2)常见的 Shell解释器程序有很多种,使用不同的Shell时,其内部指令、命令行提示符等方面会存在一些区别。通过/etc/shells文件可以了解当前系统所支持的Shell脚本种类。

[root@localhost ~]# cat /etc/shells 
/bin/sh     #(是bash命令的软链接,已经被/bin/bash所替换,/bin/bash基准于GNU的框架下发展出的Shell。)
/bin/bash     #(目前大多数Linux版本采用的默认shell)
/usr/bin/sh     #(己经被bash所替换。)
/usr/bin/bash     #(centos和redhat系统默认使用bash shell)
/bin/tcsh     #(csh的增强版,与csh完全兼容整合了csh,提供更多的功能。)
/bin/csh     #(已经被/bin/bash所替换(整合c shel,提供更多的功能))
注意点:nologin是奇怪的shell,这个shell可以让用户无法登录主机。

4、Shell编程规范

(1)编写脚本代码

①使用vim文本编辑器

②每行一条Linux命令,按执行顺序依次编写

③第一行为"#!/bin/bash",脚本申明(默认解释器)∶表示此行以下的代码语句是通过/bin/bash程序来执行。还有其他类型的解释器,比如#!/usr/bin/python、#!/usr/bin/expect。

④注释信息:以"#”开头的语句表示为注释信息,被注释的语句在脚本运行时不会被执行可执行语句:如echo命令,用于输出" "之间的字符串。

[root@localhost ~]# vim first.sh
#!/bin/bash
cd /boot/
pwd
ls -lh vml*

(2)赋予可执行权限:是脚本具有可执行属性

[root@localhost ~]# chmod +x first.sh 

(3)执行脚本文件

①脚本文件路径(绝对路径与相对路径)—必须要有“x”权限

[root@localhost ~]# ./first.sh

②sh脚本文件路径

[root@localhost ~]# sh first.sh 

③source脚本文件路径

[root@localhost ~]# source first.sh

④bash脚本文件路径

[root@localhost ~]# bash first.sh 

(4)更完善的脚本构成

①脚本声明;②注释信息;③可执行语句

[root@localhost ~]# vim /first.sh
#!/bin/bash
cd /boot
echo "当前的目录位于:"
pwd
echo "其中以vml开头的文件包括:"
ls -lh vml*

5、重定向操作

(1)交互式硬件设备

①标准输入:将从标准输入文件中读取在执行过程中需要的输入数据。

②标准输出:将执行后的输出结果发送到标准输出文件。

③标准错误:命令将执行期间的各种错误信息发送到标准错误文件。

类型

设备文件

文件描述编号

默认设备

标准输入

/dev/stdin

0

键盘

标准输出

/dev/stdout

1

显示器

标准错误输出

/dev/stderr

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值