shell脚本编程规范与变量

一.shell脚本的概述

在这里插入图片描述

2.1 shell的作用

在这里插入图片描述
什么是shell?

  • 就是与内核沟通的界面、应用程序等等。比如你要播放音乐,你的计算机通过你在shel1输入的打开音乐的命令,shell在
    告诉操作系统的内核用户希望打开音乐,内核在通过cpu调度、内存管理、磁盘输入输出等工作,将硬件调动,这时硬件声卡才会工作,硬件才是灾
    际的工作者
  • Shell(壳程序)是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个""命令解释器"的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。

在这里插入图片描述

cat /etc/shells 查看可用shell程序

在这里插入图片描述
注:bash (/bin/bash)是目前大多数linux版本中默认的shell

三. shell脚本的作用

shell脚本的作用

  • 自动化运维
  • 批量化重复操作可以编写脚本结合计划任务自动周期运行
  • 减轻管理员工作量
  • 提高处理文本文件的速度
  • 避免配置出错

补充:计算机语言分为面向对象与面向过程

面向对象:JAVA PYTHON C++ GO
面向过程:C shell

强类型语言: JAVA C++ C GO 编译型语言。执行前要先编译,运行速度快效率高
弱类型语言:PYTHON shell PHP 解释性语言,不需要编译即可直接执行。常用
于做脚本

3.1 编写第一个shell脚本

在这里插入图片描述

3.1.1 Shell 脚本的构成:

  1. **脚本申明(解释器):若第一行为"#!/bin/bash",表示此行以下的代码语句是通过/bin/bash程序来解释执行,#!/bin/bash为默认解释器。**还有其它类型的解释器,比如#!/usr/bin/python、# !/usr/bin/expect。
  2. 注释信息:以"#"开头的语句表示为注释信息,被注释的语句在运行脚本时不会被执行。
  3. 可执行语句:比如echo命令,用于输出" "之间的字符串

例如:
在这里插入图片描述

3.1.2 脚本的执行方式

1. 需要加执行权限的方式
使用绝对或相对路径来执行脚本 需要添加执行权限
在这里插入图片描述2. 不添加执行权限执行
使用bash或者sh来执行脚本

在这里插入图片描述3. source或 . 来执行脚本,此执行方式也不需要权限(不建议使用)

在这里插入图片描述注意
绝对路径/相对路径 ,bash/sh 执行脚本不会影响当前环境 ,他会先打开一个子bash环境执行,执行完之后再次回到原来的bash环境中、

source和. 执行脚本时 ,会影响当前的环境,他会在当前shell环境中运行(会影响当前所在目录和变量的值灯因素,不建议使用)

三. 重定向与管道符操作

在这里插入图片描述

3.2 重定向操作

在这里插入图片描述

< 重定向输入

在这里插入图片描述

> 重定向输出

在这里插入图片描述

>> 重定向追加

在这里插入图片描述

2> 错误内容的输出

在这里插入图片描述

2>> 将错误的内容追加到文件中

在这里插入图片描述

&> 混合输出,将标准输出,标准错误的内容保存到同一个文件

在这里插入图片描述

ls /opt /xxxxx 1>txt 2>&1

在这里插入图片描述

3.2 管道操作符号

在这里插入图片描述在这里插入图片描述

四. shell的变量的作用,类型

在这里插入图片描述

4.1 定义变量

在这里插入图片描述变量名要以字母或下划线开头 ,但不能以数字或其他符号开头
在这里插入图片描述
在这里插入图片描述

4.2 命名的规则

1. { } 定义变量范围,确定一个变量的长度
2. ’ ’ 在单引号中不识别变量
3. " " 双引号识别变量,并保留格式
4. `` 反撇号等于$( ) 调用命令的执行的输出结果

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

4.3 全局变量设置

在这里插入图片描述在这里插入图片描述但是我们再命令行输出export他只是临时的,当我们重启后就消失了,所以我们需要再/etc/profile中修改他的永久全局变量

在这里插入图片描述
在这里插入图片描述

4.4 整数变量的运算

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

4.5 特殊的环境变量

在这里插入图片描述在这里插入图片描述

若我想系统能够自动设别到我的脚本文件此时就可以将他们加入到我都PATH环境变量中

方法一:
创建软连接指向PATH环境变量的目录中
在这里插入图片描述
方法二:
创建新的PATH环境变量

编辑/etc/profile 全局环境变量
在这里插入图片描述
在这里插入图片描述

4.6 只读变量与删除变量

在这里插入图片描述

4.7 位置变量

在这里插入图片描述
$0 代表脚本本身
$1 - $9 代表第几个位置参数

在这里插入图片描述

4.8 预定义变量

$@ 将所有位置参数看作独立的个体返回
$* 将所有位置参数看作一个整体返回
$0 查看当前脚本的名称
$# 返回位置参数的总个数
$? 判断上个命令是否执行成功,成功返回0 其他则为失败

当 $@ 和 $ 有双引号时区别就能看出来了*

当它没有双引号时
在这里插入图片描述在这里插入图片描述
当有双引号时

在这里插入图片描述在这里插入图片描述

$? 判断输入的命令是否正确执行

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昨日海棠依旧.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值