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

特殊的shell变量

环境变量

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

配置文件:/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?所有位置变量的内容:$*

更多关于云服务器域名注册虚拟主机的问题,请访问西部数码官网:www.west.cn

赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » Shell编程——编程规范与变量(1)

© 2010-2024   西部数码知识库   西部数码旗下IDC知识库,为您提供域名注册,域名交易,虚拟主机,云服务器,云计算,网站建设等领域专业的知识介绍!

川B1.B2-20080058号

wordpress template system recommended themebetter

请求次数:59 次,加载用时:0.311 秒,内存占用:8.58 MB

登录

找回密码

注册