Shell编程规范与变量

2021/7/14 7:08:59

本文主要是介绍Shell编程规范与变量,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、Shell脚本的概念

二、Shell的作用

三、编写Shell脚本

 四、重定向与管道操作

五、Shell变量的作用、类型

 六、自定义变量

七、特殊变量

 

一、Shell脚本的概念

1、Shell脚本的概念

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

      给该文件可执行的权限

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

2、Shell脚本的应用场景

      重复性操作

      交互性任务 

      批量事务处理

      服务运行状态监控

      定时任务执行

3、shell脚本的构成

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

(2)、注释信息:以“#”开头的语句表示为注释信息,被注释的语句在运行脚本时不会被执行

(3)、可执行语句:比如echo命令,用于输出“ ”之间的字符串

二、Shell的作用

1、Shell的作用--命令解释器, “翻译官”

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

 

  

 

 2、用户的登录Shell

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

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

三、编写Shell脚本

1、编写脚本代码

     使用vim文本编辑器

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

     

2、赋予可执行权限

     使脚本具有可执行属性

 

 3、执行脚本文件

方法一:脚本文件路径(绝对路径与相对路径),必须由x权限

相对路径

绝对路径

 方法二:sh脚本文件路径

 方法三:source 脚本文件路径,也可以通过“.”来执行

 

 四、重定向与管道操作

1、交互式硬件设备

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

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

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

类型 设备文件 文件描述编号 默认设备
标准输入 /dev/stdin 0 键盘
标准输出 /dev/stdout 1 显示器
标准错误输出 /dev/stderr 2 显示器

2、重定向操作

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

3、管道操作符号“|”

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

 

 五、Shell变量的作用、类型

1、变量的作用

 用来存放系统和用户需要使用的特定参数(值)

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

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

2、变量作用的范围

默认情况下,新定义的变量只在当前的Shell环境中生效,因此称为局部变量。当进入子程序或新的子Shell环境时,局部变量将无法再使用,可以通过内部命令export将指定的变量导出为全局变量,使用户定义的所有的子shell环境中能够继续使用

格式1: export  变量名

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

可以使用pstree命令查看Shell环境

输入 bash 命令进入子Shell环境

按Ctrl+D组合键或输入 exit 命令退出子Shell环境

 

export product version     #导出为全局变量
bash
echo "product $version"   #子程序引用全局变量

 

3、变量的类型

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

特殊变量:环境变量、只读变量、位置变量、预定义变量

六、自定义变量

1、定义一个新的变量

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

变量名=变量值

查看变量的值

echo $变量名

 2、赋值时使用引号

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

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

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

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

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

 3、设置变量的作用范围,两种格式可以混合使用

格式一:export  变量名 ...

格式二:export  变量名=变量值 ...

4、整数变量的运算

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

常用的运算符

加法运算:+

减法运算:-

乘法运算:\*

除法运算:/

取余运算:%

常用的运算表达式

i=$(expr 12 \* 5)

i=$((12 * 5)

i=$[12 * 5]

let  i=12*5

i++相当于 i=$[$i+1]

i--  相当于i=[$i-1]

i+=2相当于i=$[$i+2]

七、特殊变量

1、环境变量

环境变量由系统提前创建,用来设置用户的工作环境。使用env命令可以查看到当前的工作环境下的环境变量

变量USER表示用户名称,HOME表示用户的宿主目录,LANG表示语言和字符集,PWD表示当前所在的工作目录,变量PATH表示可执行程序的默认搜索路径

环境变量的全局配置文件为/etc/profile,在此文件中定义的变量作用于所有用户。每个用户还有自己的独立配置文件(~/.bash_profile)。可以用来长期变更或设置某个环境变量

2、位置变量

.当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量
2.$n:n为数字,$0代表命令本身,1~9代表第一个到第九个参数,十以上的参数需要使用大括号表示,比如第十个参数为 ${10}

3、预定义变量

(1)$、$@:表示命令或脚本要处理的参数
(2)、$:把所有参数看成以空格分隔的一个字符串整体,代表"$1 $2 $3 $4"
(3)、$@:把各个参数加上双引号分隔成n份的参数列表,每个参数是独立 的,代表"$1" "$2" "$3" "$4"
(4)、$0:表示当前执行的脚本或命令的名称
(5)、$#:表示命令或脚本要处理的参数的个数
(6)、$?:表示前一条命令或脚本执行后的返回状态码,返回值为0表示执行正确,返回任何非0值均表示执行出现异常



这篇关于Shell编程规范与变量的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程