shell编程规范与变量

目录

前言

1、Shell脚本概述

1.1、Shell脚本的概念

1.2、shell脚本的应用场景

1.3、Shell作用—— 命令解释器

2、编写shell脚本

2.1、编写脚本

 2.2、执行脚本

3、重定向与管道操作 

3.1、重定向

3.2、管道符操作

3.3、交互式硬件设备

4、shell变量的作用、类型

4.1、Shell变量的作用

4.2、Shell变量的类型

4.3、自定义变量

1.定义一个新的变量

2.变量赋值的特殊操作 

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

4.设置变量的作用范围 

5.整数变量的运算

6、特殊变量

1.环境变量

2.只读变量 

3.位置变量 

4.预定义变量

总结 


前言

什么是shell脚本 怎么编写shell脚本

1、Shell脚本概述

1.1、Shell脚本的概念

将要执行的命令按顺序保存到一个文本文件;给该文件可执行权限;可结合各种Shell控制语句以完成更复杂的操作。

1.2、shell脚本的应用场景

1.重复性操作

2.交互性任务

3.批量事务处理

4.服务运行状态监控

5..定时任务执行

1.3、Shell作用—— 命令解释器

shell是一个Linux系统中一种特殊的应用程序,它介于操作系统内核和用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令并进行解释(翻译成电脑可识别的二进制文字),将需要执行的操作传递给内核执行,并输出执行结果。登录后默认使用shell程序,一般为 /bin/bash,不同的Shell的内部指令,运行环境等会有所区别。

2、编写shell脚本

2.1、编写脚本

 2.2、执行脚本

方法一:脚本文件路径 (绝对路径与相对路径)必须要有X执行权限

chmod +x first.sh (赋予执行权限)

 ./first.sh

 方法二:sh 脚本文件路径 指定Shell来解释脚本,不要求文件必须有x权限。(最常用)

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

 source first.sh

/boot

 . first.sh

/boot

 

 

3、重定向与管道操作 

3.1、重定向

echo "123456" > pass.txt
useradd lisi
passwd --stdin lisi < pass.txt

 黑洞指令
/dev/null:把它看作"黑洞",所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而 /dev/null 对命令行和脚本都非常的有用。

 例:以0作为分界符,只要不输入0就会一直输入数据从而显示到屏幕

列:可以把输入重定向和输出重定向结合使用,把从屏幕输出的内容保存到文件 

 

 

使用passwd命令为用户设置密码时,每次都必须根据提示输入两次密码字串,非常烦琐,若改用重定向输入将可以省略交互式的过程,而自动完成密码设置(结合passwd命令的“--stdin”选项来识别标准输入)。

 3.2、管道符操作

将左侧的命令输出结果,作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。

3.3、交互式硬件设备

  • 标准输入:从该设备接收用户输入的数据
  • 标准输出:通过该设备向用户输出数据
  • 标准错误:通过该设备报告执行出错信息

 可以改变输入、输出内容的方向,而不使用默认的标准输入、输出设备(键盘和显示器),这种操作称之为“重定向”

4、shell变量的作用、类型

4.1、Shell变量的作用

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

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

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

4.2、Shell变量的类型

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

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

4.3、自定义变量

1.定义一个新的变量

自定义变量是由系统用户自己定义的变量,只在用户自己的shell环境中有效,因此又称为本地变量

在编写shell脚本的时候,通常会设置一些特定的自定义变量

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

定义变量的基本格式为“变量名=变量值” 注意等号两边没有空格!

格式:变量名=变量值
(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值
这是单向的,将右边的变量值赋予左边的变量名。这里可以理解成:A=B B≠A

 

查看定义的变量的值

2.变量赋值的特殊操作 

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

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

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

小括号():与反撇号``作用一致

 

 

 

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

read命令获取输入内容

read -p "提示信息" 变量名
 

 

 

4.设置变量的作用范围 

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

变量名设置格式:export变量名...
全局变量格式:export 变量名=变量值

 5.整数变量的运算

常用运算符说明
+加法运算
-减法运算
*乘法运算
/除法运算
%求模(取余)运算

 let命令

 

let n++        #n自加1
let n--         #n自减1
 
[a++]          #先输出再自增1
[++a]          #先自增1再输出
a=`expr 1 + 1 `
echo $((10 / (1+1))) 相当于  echo $[10 / (1+1)]
let i=12*2
相关概念
i++     相当于    i=$[$i+1]
i--     相当于    i=$[$i-1]
i+=2    相当于    i=$[$i+2]
 

 

 

 

bc命令 

6、特殊变量

1.环境变量

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

可以用来长期变更或设置某个环境变量

全局配置文件为/etc/profile,在此文件中定义的变量作用于所有用户。

用户自己的独立配置文件(~/.bash_profile),此文件定义的变量仅作用于当前用户

常见环境变量

USER 表示用户名称

HOME 表示用户的宿主目录

LANG 表示语言和字符集

PWD 表示当前所在的工作目录

PATH 表示可执行程序的默认搜索路径
使用 env 命令可以查看到当前工作环境下的环境变量

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

2.只读变量 

用于变量值不允许被修改的情况

格式:readonly 【选项】【参数】
readonly b=abc
abc=bcd 
bash: b: 只读变量  #再想修改只读变量就无法修改了

3.位置变量 

当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量。

$n:n为数字,$0代表命令本身,1~9代表第一个到第九个参数,十以上的参数需要使用大括号表示,比如第十个参数为 ${10}

 

4.预定义变量

 

 

 

总结 

shell的作用与应用场景

shell脚本的编写规范与执行方法

重定向与管道的作用与使用方法

自定义变量赋值时单引号、双引号、反撇号的使用方法

数值变量的常用运算符:+、-、*、/、%

环境变量、只读变量、位置变量、预定义变量的用途

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值