陈奇网络工作室

shell编程——编程规范和变量(1)

系统运输

shell脚本概述

shell脚本概念:

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

将可执行权限授予此文件,即可执行

您可以组合各种shell控制语句以执行更复杂的操作

shell脚本应用场景:

重复操作

批量事务处理

运输自动化

监视服务的运行状况

执行定时任务

……

壳牌的作用——指令解释器,“翻译官”

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

用户的登录外壳程序

登录后默认使用的shell程序通常是/bin/bash

根据shell的内部命令,执行环境等也不同

创建第一个shell脚本

编写脚本代码

使用vim文本编辑器

每行一个Linux命令,按执行顺序依次记述

[root@localhost? ( #? vim? first.sh? 编辑第一个脚本

#! /bin/bash? 壳牌声明

#first? test? 注释

光盘? /boot/命令行

pwd

洛杉矶? -lh? vml*

赋予可执行的权限

使脚本具有可执行属性

chmod? x? first.sh给出执行属性

运行脚本文件

需要执行权限才能执行,但位置不会更改

./first.sh?

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

. first.sh?

source first.sh?

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

sh first.sh?

更高级的脚本配置

脚本声明

注释信息

可执行语句

#! /bin/bash

#first? 测试

光盘? /boot/

echo? 当前目录:

pwd

echo? 其中,以vml开头的文件如下:

洛杉矶? -lh? vml*

重定向和管道操作

交互式硬件设备

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

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

标准错误:从此设备报告执行错误消息

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

键盘

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

重定向操作

类型操作符用途重定向输入从指定文件读取数据,而不是从键盘输入重定向输出。 将输出结果保存到指定文件,并复盖原始内容。 将输出结果添加到指定文件

错误输出2指定错误信息温家安(复盖原来的内容) 2将错误信息追加混合到指定文件中输出的标准输出,将标准错误的内容保存到同一文件中

管道操作符号“|”

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

壳变量的作用、类型

变量的作用

提供特定参数以灵活管理Linux系统有两个含义

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

变量值:可以根据用户的设定、系统环境的变化而变化

变量类型

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

环境变量:包含用于设定工作环境的系统维护

位置变量:从命令行向脚本程序传递参数

预定义变量:是Bash中内置的一种变量,不能直接更改

自定义变量

定义新变量

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

变量名=变量值

显示变量值

echo? $变量名

赋值时使用引号

双引号: $符号可以引用其他变量的值

单引号:不能引用其他变量的值。 $被视为普通字符

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

通过键盘输入为变量赋值

里德? [-p? 提示? 变量名

设定变量的适用范围

格式1 :导出? 变量名.

格式2 :输出? 变量名=变量值.

——种格式可以混合使用

整数变量的运算

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

常用运算符

加法:

减法: -

乘法\\\\*

除法/

求模(取余)运算: %

小脚本示例:输入两个数字,求出它们的和

#! /bin/bash

#输入两个整数,求出他们的和

#输入第一个数字

里德? -p? 请输入整数? num1

#输入第二个个数

里德? -p? 请输入整数? num2

进行#加法运算

sum=`expr? $num1? $num2'

表示两个数之和

echo? 两个数字之和为$sum

特殊的外壳变量

环境变量

为设置用户首选项而预创建的系统

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

一般环境变量

PWD,PATH

用户,壳牌,HOME

位置变量

表示$n,n是1到9之间的数字

#! /bin/bash

echo? 合计是` expr? $1? 美元2 `

预定义变量

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

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

$?在执行上一个命令后返回的状态下,如果返回状态的值为0,则表示执行正常,非零值表示执行异常或错误

$0:当前正在运行的进程/程序编号

#! /bin/bash

echo? 合计是` expr? $1? 美元2 `

echo? 脚本名称: $0

echo? 命令行变量: $#

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

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3