当前位置: 首页 > news >正文

Linux---shell脚本

文章目录

  • 目录

    文章目录

    前言

    一.Shell脚本定义

    shell脚本书写规范

     shell脚本执行方式

     二.Shell变量

    变量定义

    定义规范

    定义方式

     变量的运算

    数值运算

     数值比较

    未完待续......


前言

希望通过本文的学习,你能够掌握Shell脚本的基本知识和实用技巧,将Shell脚本融入到你的日常工作中,成为你提高工作效率、实现自动化任务的得力助手。让我们一起踏上这段探索Shell脚本的旅程,开启一段充满无限可能的自动化之旅吧!


一.Shell脚本定义

Shell以文本方式提供了与操作系统内核进行交互的方式。用户可以在shell脚本文件中写入一系列系统命令,然后执行shell脚本就可以自动执行脚本文件中的命令从而节省大量时间。

Shell可以帮助用户高效地执行一系列命令和任务。通过学习和掌握Shell脚本的编写技巧,用户可以大大提高工作效率和自动化水平。

shell脚本书写规范

  1. 脚本命名
    • 脚本名应以.sh结尾,名称应尽量具有描述性,如ClearLog.shSerRestart.sh等。
  2. 编码格式
    • 尽量使用UTF-8编码,注释及输出尽量使用英文。
  3. 执行权限
    • 一般应给予脚本执行权限,但一些仅用于变量定义的配置文件则无需加执行权限。
  4. 解释器声明
    • 脚本首行应使用#!/bin/bash(或#!/usr/bin/env bash)来声明解释器,没有空格,不带任何选项。

下面是一个简单的脚本案例:

#创建一个以.sh结尾的shell脚本文件
[root@localhost sh]# vim test_1.sh
首行添加解释器声明,在此之后可以添加需要执行的命令
#!/bin/bash
【添加需要执行的命令】#添加完脚本内容后给脚本添加执行权限
[root@localhost sh]# chmod u+x test_1.sh

 shell脚本执行方式

直接运行脚本

  1. 方法描述
    • 在终端中输入脚本文件的路径并按下回车键即可执行脚本。
    • 例如,如果脚本文件名为script.sh,并且位于当前目录下,则可以在终端中输入./script.sh来执行该脚本。
  2. 特点与要求
    • 需要确保脚本文件具有可执行权限
    • 可以使用chmod命令来设置脚本的权限,如chmod +x script.sh
    • 脚本文件的第一行通常包含Shebang(如#!/bin/bash),用于指定解释器。
#利用路径的方式执行一下脚本
[root@localhost sh]# ./test_1.sh
#若无执行权限会出现如下报错:
-bash: ./test_1.sh: 权限不够#提示“权限不够”代表当前用户无执行权限,需要添加权限
[root@localhost sh]# chmod u+x test_1.sh

 使用shell解释器执行

  1. 方法描述
    • 通过显式地指定Shell解释器来执行脚本。
    • 例如,使用bash script.shsh script.sh来执行脚本。
  2. 特点与要求
    • 不需要脚本文件具有可执行权限
    • 可以选择不同的Shell解释器,如bash、sh、zsh等。
    • 适用于不同Shell环境,提高了脚本的兼容性。
[root@localhost sh]# bash test_1.sh[root@localhost sh]# sh test_1.sh

 二.Shell变量

顾名思义,变量就是程序设计语言中的一个可以变化的量,从本质上讲,变量就是在程序中保存用户数据的一块内存空间,而变量名就是这块内存空间的地址。 

变量定义

定义规范

定义变量有以下几点需要注意: 

  • 变量名可以包含下划线,数字,大小写字母,但不能以数字开头。
  • "="两边不要有空格。
  • “值”如果含有空格,要使用单引号' '或双引号“ ”引起来
  • 定义变量时,变量名前是不需要加$的,引用变量时需要在变量名前加$

常见定义错误如下:

变量名不能以数字开头,所以会报错
[root@localhost ssh]# 1aa=123
bash: 1aa=123: command not found...变量名只能以数字,字母,下划线组合,所以报错
[root@localhost ssh]# aa-1=123
bash: aa-1=123: command not found...等号右边有空格,所以报错
[root@localhost ssh]# aa=1 2
bash: 2: command not found...

  正常的变量定义如下:

[root@localhost ssh]# a=123
[root@localhost ssh]# echo $a
123

定义方式

基本定义式

格式如下:

变量=值
[root@localhost ssh]# a=123
[root@localhost ssh]# echo $a
123

  命令结果定义式

格式如下:

变量=$(命令)

例如,定义一个名称是IP的变量,对应的值是ens160的IP,命令如下:

[root@localhost ~]# IP=$(ifconfig ens160 | awk '/inet /{print $2}')
[root@localhost ~]# echo $IP
192.168.23.143

 交互式定义

使用read命令从用户输入中获取变量的值。这种方法通常用于需要用户输入的场景。

格式如下:

read -p '提示信息' 变量

 当执行read命令时,系统会提示用户输入一些内容,所输入的值会赋值给read后面的变量,这里我们输入的是123,所以打印a变量时看到的是123。

[root@localhost ~]# read -p "请输入数字:" a
请输入数字:123
[root@localhost ~]# echo $a
123

 变量的运算

数值运算

+表示加法
-表示减法
*表示乘法
/表示除法
**表示次方

进行数学运算的表达式有$(()),$[ ],let等。

[root@localhost ~]# a=$[1+2]
[root@localhost ~]# echo $a
3

 数值比较

-eq相等
-ne不相等
-gt大于
-ge大于等于
-lt小于
-le小于等于

 练习1:判断1等于2,命令如下:

[root@localhost ~]# [1 -eq 2 ]
bash: [1: command not found...
[root@localhost ~]# echo $?
127

 1是不能等于2的,所以判断不成立,返回值是非零值。

练习2:判断1不等于2,命令如下:

[root@localhost ~]# [ 1 -ne 2 ]
[root@localhost ~]# echo $?
0

1不等于2,所以判断成立,返回值为0。 


未完待续.......


http://www.mrgr.cn/news/76468.html

相关文章:

  • ubuntu20.04安装anaconda与基本使用
  • 使用 Python 和 OpenCV 实现摄像头人脸检测并截图
  • RTSP播放器EasyPlayer.js播放器UniApp或者内嵌其他App里面webview需要截图下载
  • 算法魅力-二分查找实战
  • PL/0-语法分析器
  • 【C语言】程序性能优化——除法运算符
  • Spring Batch :高效处理海量数据的利器
  • 15分钟学 Go 第 56 天:架构设计基本原则
  • 【操作系统不挂科】<Linux进程概念>选择题(带答案与解析)
  • shell数组
  • 预处理(1)(手绘)
  • 低代码平台:跨数据库处理的重要性与实现方式
  • JavaScript 变量:理解基元和引用类型
  • AT方法论
  • Python Tornado框架教程:高性能Web框架的全面解析
  • Scala-键盘输入(StdIn)-用法详解
  • 【030】基于51单片机甲醛检测报警器【Proteus仿真+Keil程序+报告+原理图】
  • 理论力学基础:讲义与笔记(2)
  • WebChromeClient 方法分类及其功能
  • 数据研发基础| 什么是数据漂移
  • git本地分支推送到远程和远程pull到本地
  • 蓝桥杯备赛(持续更新)
  • python机器人Agent编程——多Agent框架的底层逻辑(上)
  • 《Python编程实训快速上手》第五天--模式匹配与正则表达式
  • Python学习26天
  • 【第三课】Rust变量与数据类型(二)