shell编程规范与变量

本文介绍了shell脚本的概念,包括其作为命令执行工具的重要性,应用场景如重复性操作和监控服务状态。还详细讲解了shell脚本中的变量,包括自定义变量、环境变量和位置变量,以及它们的定义、作用范围和预定义变量。
摘要由CSDN通过智能技术生成

一、shell脚本概述
(一)概念
▶将要执行的命令按顺序保存到一个文本文件
▶给该文件可执行权限
▶可结合各种shell控制语句以完成更复杂的操作

(二)应用场景
▶重复性操作
▶交互性任务
▶批量事务处理
▶服务运行状态监控
▶定时任务执行

(三)shell的作用
▶shell是与内核沟通的界面、应用程序、KDE等等。就好比你要播放音乐,你的计算机通过你在shell输入的打开音乐的命令,shell在告诉操作系统的内核用户希望打开音乐,内核通过CPU调度、内存管理、磁盘输入输出等工作,将硬件调动,这时硬件声卡才会工作,硬件才是实际的工作者。
▶命令解释器,充当翻译官,介于系统内核与用于之间,负责接收用户输入的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。
▶用户登录shell,登录后默认使用的shell程序一般是/bin/bash
▶不同shell的内部指令、运行环境等会有所区别
▶Linux所包含的shell,最常用的是
bash:基准与GNU的框架下发展出的shell
tcsh:整合了csh,提供更多的功能
csh:语法类似于C语言的shell
sh:已经被bash所替换
nologin:这个shell可以让用户无法登录主机

(四)shell脚本的构成
1、脚本声明
若第一行为“#!/sbin/bash”,表示此行以下的代码语句是通过/bin/bash程序来解释执行。#!/sbin/bash为默认解释器。

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

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

(五)编写脚本代码
1、使用vim文本编辑器
2、每行一条Linux命令,按执行顺序依次编写

二、shell脚本变量
(一)变量的作用
作用 :用来存放系统和用户需要使用的特定参数(值)

变量名 :使用固定的名称,由系统预设或用户定义
变量值 :能够根据用户设置、系统环境的变化而变化

(二)变量的分类
自定义变量 :由用户自己定义、修改和使用
环境变量 :由系统维护,用于设置工作环境
位置变量 :通过命令行给脚本程序传递参数
预定义变量 :Bash中内置的一类变量,不能直接修改

(三)定义新的变量
1、自定义变量

在自定义变量当中:"" '' ``

整数类型可以不加引号,赋值为字符串类型,最好加上引号,以避免歧义

在给变量赋值时,单引号和双引号一样。不影响使用

``:命令替换,先执行反撇号当中的命令,然后把命令执行的结果赋值给变量

打印变量时,引号的作用,这里不涉及反撇号

打印变量双引号和单引号机制不同

echo"$a" 弱引用,原变量的值不变。

echo'$a' 强引用,变量值将不再打印,就是$a这个字符串

echo "${a}":保证一定能够正确的识别变量值。

read 命令的方式获取变量

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

变量的作用范围:

默认情况:新定义的变量只在当前的shell环境中生效

全局变量:

export 变量名=变量值

需要在一整套环境当中引用唯一且不需要变量的变量时,才会声明全局变量。

环境变量:enc

echo $PATH

系统提前创建,用户也可以添加。设备用的工作环境,配置系统行为,控制程序执行

特殊的全局变量

用户级环境变量:只对当前用户可见。

预定义环境变量:系统预设,所有可以都见,相当于全局变量

自定义的环境变量:特殊的全局变量,只对设置用户有效。

$USER  显示用户的名称

$HOME 用户的家目录

$PWD 表示用户所在的工作目录

$PATH 可执行用户程序的默认路径

位置变量:

命令行参数

在脚本或者程序运行时,传递给他们的值,而且位置变量在脚本外部传递变量值

$n 1-9

$1 $2

10

${10}  ${11}

预定义变量:

编程语言或者脚本解释器提供的,不能修改,只能根据需要自动设置或者更新。

$*和$@:表示命令或者脚本需要处理的参数

$*和$@:不加引号的表现一致,都会把参数处理

$*:加上引号,会把参数当成一行来处理

$#:显示需要处理的参数个数

$?:表示前一条命令或者脚本执行之后的返回状态码,只有返回0,表示成功,所有非0都表示执行失败。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值