快速上手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.常见的系统预设变量

相关推荐
大树882 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz3 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工3 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智4 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩4 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_4 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化