快速上手SHELL脚本基础及变量与运算

一、shell脚本中的基本元素

1.脚本的基本结构

脚本幻数,即脚本解释器,脚本运行的最优先指令,负责对脚本中其他命令进行解释

程序主题,程序主体通常由命令,执行逻辑控制器和数据组成

注释,脚本中的说明文字,不参与脚本执行,只是对脚本中的代码进行说明

2.脚本中的注释方法

  • 脚本中通常用#号注释单行内容
  • 多行注释

:空格"

xxx

xxx

"

二、脚本的书写规范

1.书写规范注意事项

  • 脚本文件名应见名知意,例如backup_mysql.sh

  • 文件开头指定脚本解释器 #!/bin/sh 或 #!/bin/bash

  • 脚本中尽量不要用中文注释,防止本机或切换系统环境后中文乱码的困扰

  • 多使用内部命令,如:echo、eval、exec、export、read、shift、exit

  • 尽量用少的命令完成动作

  • 开头加版本特权等信息

    Date:创建日期

    Author:作者

    Mail:联系方式

    Function:功能

    Version:版本

  • 利用缩进体现代码结构,更加利于后期阅读

2.vim用于书写脚本的设定

在编写一个脚本呢时我们需要书写一些主属性信息用来利与脚本阅读,用vim的自动编写功能可以实现对于这些重复动作的简化

效果:

三、脚本执行方法

1.在当前环境下运行

方法① .空格+脚本名

这种方法是在shell环境里运行的,不会新开环境

方法② source 脚本名

以上两中执行方法不需要脚本本身有可执行权限

2.在指定环境中运行 (开头#!后的环境中)

方法③ sh 脚本名

方法④ 绝对路径调用

四、脚本测试(显示执行过程)

脚本在执行过程中如果出现问题,单从脚本的执行报错中找问题困难比较大,如果在执行时显示执行过程,这样就可以快速定位脚本的问题所在

👺注:在显示执行过程时,+行表示命令,不带+的行表示命令的输出

五、命令退出值

1.什么是退出值

  • 在UNIX或者Linux中,每个命令都会返回一个退出状态码
  • 退出状态码是一个整数,其有效范围为0~255
  • 通常情况下,成功的命令返回0,而不成功的命令返回非0值。非0值通常都被解释成一个错误码
  • 行为良好的UNIX命令,程序和工具都会返回0作为退出码来表示成功。

2.查看和修改退出值

  • 查看退出值

echo $?

  • 修改退出值

六、变量

1.变量命名规则

2.变量调用方法

$变量名

3.字符转义及引用

单引号表示强引用

双引号表示弱引用,其和单引号的区别在于不能引用 ` \ ! $

4.变量的类型

从变量的作用范围来划分,变量分为函数变量、环境级变量、用户级变量和系统级变量

  • 函数级变量只在函数内生效,通常用local来定义
  • 环境级变量只在当前的shell中生效,shell关闭变量被释放
  • 用户级变量只有登陆系统的指定用户,此变量才生效

👆创建用户级变量

  • 系统级变量是系统中的永恒设定,所有用户都可使用,系统变量通常保存到/etc/profile中

👺注:需使用source生效

5.常见的系统预设变量

相关推荐
我叫黑大帅2 分钟前
【Linux网络配置实验】sendmail配置
linux
半夏知半秋21 分钟前
skynet源码学习-skynet_env守护进程
服务器·学习·系统架构
绝不偷吃28 分钟前
部署LVS-DR模式集群
linux·服务器·网络
dessler29 分钟前
Zookeeper-事务日志(Txn Log)‌的阅读
linux·运维·zookeeper
俺俺30 分钟前
(40)华为云平台cce中挂载nginx等配置文件方法
服务器·nginx·华为云·挂载·cce
曼汐 .33 分钟前
高性能群集部署技术-LVS+Keepalived高可用群集
服务器·数据库·lvs
蓝蜂物联网1 小时前
PLC 远程运维新范式:物联网打破空间限制
运维·物联网·信息可视化·制造
SQG_L2 小时前
Linux内网穿透(frp)
linux·运维
武汉格发Gofartlic4 小时前
如何跟踪FEMFAT许可使用情况
运维·python·算法·信息可视化·数据分析
两个人的幸福online6 小时前
宝塔安装nginx-rtmp,音视频直播
运维·nginx·音视频