Shell编程——编程规范与变量(1)

系统运维

Shell脚本概述

创新互联专注于岳阳县网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供岳阳县营销型网站建设,岳阳县网站制作、岳阳县网页设计、岳阳县网站官网定制、成都小程序开发服务,打造岳阳县网络公司原创品牌,更为您提供岳阳县网站排名全网营销落地服务。

shell脚本的概念:

将要执行的命令按顺序保存到一个文本文件

给该文件可执行权限,便可运行

可结合各种shell控制语句以完成更复杂的操作

shell脚本应用场景:

重复性操作

批量事务处理

自动化运维

服务运行状态监控

定时任务执行

...

shell的作用——命令解释器,“翻译官”

介于系统内核与用户之间,负责解释命令行

用户的登录shell

登录后默认使用的shell程序,一般为/bin/bash

不同shell的内部指令,运行环境等会有所区别

编写第一个Shell脚本

编写脚本代码

使用vim文本编辑器

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

[root@localhost ~]# vim first.sh 编辑第一个脚本
#!/bin/bash   shell声明
#first test   注释
cd /boot/     命令行
pwd
ls -lh vml*

赋予可执行权限

使脚本具有可执行属性

chmod +x first.sh  赋予执行属性

执行脚本文件

需要执行权限才能执行,但是不改变位置

./first.sh 

不需要执行权限,但是改变位置

. first.sh 

source first.sh 

不需要执行权限也不会改变位置

sh first.sh 

更完善的脚本构成

脚本声明

注释信息

可执行语句

#!/bin/bash
#first test
cd /boot/
echo 当前的目录位于:
pwd
echo 其中以vml开头的文件包括:
ls -lh vml*

重定向与管道操作

交互式硬件设备

标准输入:从该设备接收用户输入的数据

标准输出:通过该设备向用户输出数据

标准错误:通过该设备报告执行出错信息

类型设备文件文件描述编号默认设备标准输入/dev/stdin0

键盘

标准输出/dev/stdout1显示器标准错误输出/dev/stderr2显示器

重定向操作

类型操作符用途重定向输入<从指定的文件读取数据,而不是从键盘输入重定向输出>将输出结果保存到指定的文件(覆盖原有内容)>>将输出结果追加到指定文件
标准错误输出2>将错误信息保存到指定温家安(覆盖原有内容)2>>将错误信息追加到指定文件中混合输出&>将标准输出,标准错误的内容保存到同一个文件中

管道操作符号“|”

将左侧的命令输出结果,作为右侧命令的出来对象

shell变量的作用,类型

变量的作用

为灵活管理Linux系统提供特定参数,有两层意思

变量名:使用固定的名称,由系统预设或用户定义

变量值:能够根据用户设置,系统环境的变化而变化

变量的类型

自定义变量:由用户自己定义,修改和使用

环境变量:有系统维护,用于设置工作环境

位置变量:通过命令行给脚本程序传递参数

预定义变量:Bash中内置的一类变量,不能直接修改

自定义的变量

定义一个新的变量

变量名以字母或下划线开头,区分大小写,建议全大写

变量名=变量值

查看变量的值

echo $变量名

赋值时使用引号

双引号:允许通过$符号引用其他变量值

单引号:禁止引用其他变量值,$视为普通字符

反撇号:命令替换,提取命令执行后的输出结果

从键盘输入内容为变量赋值

read [-p 提示信息] 变量名

设置变量的作用范围

格式1:export 变量名...
格式2:export 变量名=变量值...

——两种格式可以混合使用

整数变量的运算

expr 变量1 运算符 变量2 [运算符 变量3]...

常用的运算符

加法运算:+

减法运算:-

乘法运算:\\*

除法运算:/

求模(取余)运算:%

小脚本实例:输入两个数字,并求出他们的和

#!/bin/bash
#输入两个整数,求他们的和
#输入第一个数
read -p 请输入一个整数 num1
#输入第二个数
read -p 请输入一个整数 num2
#进行加法运算
sum=`expr $num1 + $num2`
#显示出两个数之和
echo 两个数字之和是:$sum

由系统提前创建,用来设置用户的工作环境

配置文件:/etc/profile , ~/.bash_profile

PWD,PATH

USER,SHELL,HOME

表示为$n,n为1~9之间的数字

#!/bin/bash
echo 求和为:`expr $1 + $2`

$#:命令行中位置变量的个数

$*:所有位置变量的内容

$?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或出错

$0:当前执行的进程/程序号

#!/bin/bash
echo 求和为:`expr $1 + $2`
echo 脚本名称:$0
echo 命令行中的变量个数:$#
echo 所有位置变量的内容:$*


标题名称:Shell编程——编程规范与变量(1)
本文URL:http://azwzsj.com/article/cjpphd.html