Shell脚本攻略十八式之第一招——编程规范与变量

Posted 28线不知名云架构师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本攻略十八式之第一招——编程规范与变量相关的知识,希望对你有一定的参考价值。

#!/bin/bash

#Shell写得好,女友排队找

#女神镇楼!!!

一、Shell脚本概述

1.1、shell概念

linux shell是一种特殊的交互式工具,它为用户提供了启动程序、管理文件系统中的文件以及运行在linux系统上的进程的途径。shell的核心是命令行提示符。命令行提示符是shell负责交互的部分。它允许你输入文本命令,然后解析命令,并在内核中执行。

1.2、shell的功能——命令解释器,翻译官

介于系统内核与用户之间,负责解释命令行,将需要的执行操作传递给内核执行,并输出执行结果

1.3、shell脚本的应用场景

shell脚本就是将要执行的命令按顺序保存到一个文本文件,并给该文件执行权限,方便一次性执行的一个程序文件。主要是方便管理员进行设置或管理,可结合各种shell控制语句以完成更复杂的操作。常用于重复性的操作、批量事务处理、自动化运维、服务运行状态监控、定时任务等。

shell脚本运行的服务特点:①重复性操作②交互性任务③批量事务处理④服务运行状态⑤监控定时任务执行

1.4、shell的编程规范

常见的shell解释器程序有很多种,使用不同的shell脚本时,其内部指令、命令行提示等方面会存在一些区别。通过/etc/shells文件可以了解当前系统所支持的shell脚本种类

[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh

1.5、shell脚本的运行

编辑一个脚本 名字是hello.sh

vim hello.sh

方法一:有权限

执行脚本前 记住给他权限

chmod +x hello.sh

方法二:没有权限

source hello.sh

1.6、bash和sh的区别

bash执行脚本遇到错误依旧会走完

sh执行脚本遇到错误就会停止不会继续往下走

bash -x //逐行调试
bash -n //仅检查语法错误

二、shell脚本变量

2.1、环境变量的定义

各种shell环境中都使用到了“变量”的概念。Shell变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或系统环境的变化而相应变化。通过使用变量,Shell程序能够提供更加灵活的功能,适应性更强。

常见的Shell变量的类型包括自定义变量、环境变量、位置变量、预定义变量。

2.2、自定义变量

自定义变量是由系统用户自己定义的变量,只有用户自己的shell环境中有效,因此又称为本地变量。在编写shell脚本程序时,通常会设置一些特定的自定义变量,以适应程序过程中的各种变化,满足不同需要。

2.2.1、定义新的变量

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

变量名=变量值

2.2.2、查看和引用变量的值

echo $变量名

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

--------方法一---------
read [-p "提示信息"] 变量名
echo $变量名

--------方法二---------
read 变量名
echo $变量名

2.2.4、变量作用范围

默认情况下,新定义的变量只在当前的shell环境中有效,因此成为局部变量。当进入子程序或新的子shell环境中时,局部变量将无法再使用

2.3、shell脚本变量——环境变量

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

②配置文件:/etc/profile(全局生效)、~/.bash_profile(当前用户环境)

2.3.2、常见环境变量

PWD、PATH
USER、SHELL、HOME

使用 env 命令可以查看到当前工作环境下的环境变量

2.3.3、PATH(路径环境变量)

echo $PATH					#查看当前搜索路径
PATH="$PATH:/root"			#将/root目录添加到搜索路径
export PATH="$PATH:/root"	#输出为全局环境变量
first.sh
  • 已经将该目录添加到路径环境变量中,目录内的所有具有执行权限的文件,都可以在当前环境任何目录中执行

只读变量

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

readonly 命令设置只读变量
readonly PRODUCT				#设置为只读变量
echo $PRODUCT
PRODUCT=Python			        #只读变量不可以被重新赋值
unset PRODUCT					#只读变量不可以被删除,unset 命令用于删除变量,但无法删除只读变量,只能重启系统解决

位置变量

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

vim lic.sh
#!/bin/bash
echo $1
echo $2
echo $1 + $2

 

以上是关于Shell脚本攻略十八式之第一招——编程规范与变量的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本必备十八式之第二式条件语句

Shell必备十八式之第四式——正则表达式和文本处理器

理论+实操 :shell编程规范与变量————理论讲解,新手必看

shell脚本——shell编程规范与变量

Shell脚本编程规范与变量

Shell编程规范与变量