返回顶部
首页 > 资讯 > 操作系统 >shell脚本语言的使用(超全超详细)
  • 875
分享到

shell脚本语言的使用(超全超详细)

shell脚本shell脚本语言 2022-06-04 23:06:44 875人浏览 八月长安
摘要

1、shell的概述 shell 是一种脚本语言 脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译) shell 既是应用程序 又是一种脚本语言(应用

1、shell的概述

shell 是一种脚本语言
脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译)
shell 既是应用程序 又是一种脚本语言(应用程序 解析 脚本语言)
shell命令解析器:
系统提供 shell命令解析器: sh ash bash
查看自己linux系统的默认解析:echo $SHELL

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

shell脚本是一种脚本语言,我们只需使用任意文本编辑器,按照语法编写相应程序,增加可执行权限,即可在安装shell命令解释器的环境下执行

2、脚本的调用形式

打开终端时系统自动调用:/etc/profile 或 ~/.bashrc

/etc/profilrPpDoe
此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,系统的公共环境变量在这里设置
开始自启动的程序,一般也在这里设置
~/.bashrc
用户自己的家目录中的.bashrc
登录时会自动调用,打开任意终端时也会自动调用
这个文件一般设置与个人用户有关的环境变量,如交叉编译器的路径等等
用户手动调用:用户实现的脚本

shell脚本语言的使用(超全超详细)

3、shell语法初识

3.1、定义以开头:#!/bin/bash

#!用来声明脚本由什么shell解释,否则使用默认shell

shell脚本语言的使用(超全超详细)

3.2、单个"#"号代表注释当前行第一步:编写脚本文件

shell脚本语言的使用(超全超详细)

第二步:加上可执行权限


chmod +x xxxx.sh

shell脚本语言的使用(超全超详细)

第三步:运行

shell脚本语言的使用(超全超详细)

三种执行方式 (./xxx.sh bash xxx.sh . xxx.sh)

三种执行方式的不同点(./xxx.sh bash xxx.sh . xxx.sh)

./xxx.sh :先按照 文件中#!指定的解析器解析

如果#!指定指定的解析器不存在 才会使用系统默认的解析器

bash xxx.sh:指明先用bash解析器解析

如果bash不存在 才会使用默认解析器

. xxx.sh 直接使用默认解析器解析

三种执行情况:(重要)

shell脚本语言的使用(超全超详细)

注意:windows下 写脚本 在linux下执行 注意

shell脚本语言的使用(超全超详细)

执行结果:

shell脚本语言的使用(超全超详细)

将windows文件 转换成 unix文件
方法一:dos2unix 如果没有插件 需要安装
sudo apt-get install dos2unix
dos2unix shell脚本
转换成功就可以执行运行
方法二:
需要用vi打开脚本,在最后一行模式下执行
:set ff=unix

shell脚本语言的使用(超全超详细)

4、变量

定义变量
变量名=变量值
如:num=10
引用变量
$变量名
unset :清除变量值

shell脚本语言的使用(超全超详细)

运行结果:

shell脚本语言的使用(超全超详细)

从键盘获取值read

shell脚本语言的使用(超全超详细)

运行结果:

shell脚本语言的使用(超全超详细)

案例:

在一行上显示和添加提示 需要加上-p

shell脚本语言的使用(超全超详细)

运行结果:

shell脚本语言的使用(超全超详细)

案例:读取多个值

shell脚本语言的使用(超全超详细)

运行结果:

shell脚本语言的使用(超全超详细)

案例只读变量:

shell脚本语言的使用(超全超详细)

运行结果:

shell脚本语言的使用(超全超详细)

查看环境变量:env

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

导出环境变量(其他shell识别该变量)

source 脚本文件
source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令。
注:该命令通常用命令“.”来替代。
如:source .bash_rc 与 . .bash_rc 是等效的。
注意:source命令与shell scripts的区别是,
source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用source 命令。

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

可以在终端中读取:

shell脚本语言的使用(超全超详细)

在其他sh脚本读取:

shell脚本语言的使用(超全超详细)

运行结果:

shell脚本语言的使用(超全超详细)

注意事项:

1、变量名只能包含英文字母下划线,不能以数字开头
1_num=10 错误
num_1=20 正确
2、等号两边不能直接接空格符,若变量中本身就包含了空格,则整个字符串都要用双引号、或单引号括起来
3、双引号 单引号的区别
双引号:可以解析变量的值
单引号:不能解析变量的值

shell脚本语言的使用(超全超详细)

运行结果:

shell脚本语言的使用(超全超详细)

如果想在PATH变量中 追加一个路径写法如下:(重要!!!!)


export PATH=$PATH:/需要添加的路径

5、预设变量

shell直接提供无需定义的变量

shell脚本语言的使用(超全超详细)

案例:

shell脚本语言的使用(超全超详细)

运行结果:

shell脚本语言的使用(超全超详细)

脚本标量的特殊用法

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

加-e转义 才起换行作用

shell脚本语言的使用(超全超详细)

()由子shell 完成

shell脚本语言的使用(超全超详细)

{}由当前的shell执行

shell脚本语言的使用(超全超详细)

6、变量的扩展

6.1、判断变量是否存在

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

6.2、字符串的操作

shell脚本语言的使用(超全超详细)

7、条件测试

test命令:用于测试字符串、文件状态和数字
test命令有两种格式:
test condition 或[ condition ]
使用方括号时,要注意在条件两边加上空格。

7.1、文件测试

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

7.2、字符串测试

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

7.3、数值测试

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

7.4、符合语句测试

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

8、控制语句

shell脚本语言的使用(超全超详细)

8.1、if控制语句


格式一:
if [条件1]; then
  执行第一段程序
else
  执行第二段程序
fi
格式二:
if [条件1]; then
  执行第一段程序
elif [条件2];then
执行第二段程序
else
  执行第三段程序
fi

案例:

shell脚本语言的使用(超全超详细)

案例:判断当前路径下有没有文件夹 有就进入创建文件 没有 就创建文件夹 再进入创建文件

shell脚本语言的使用(超全超详细)

运行结果:

shell脚本语言的使用(超全超详细)

案例:

shell脚本语言的使用(超全超详细)

运行结果:

shell脚本语言的使用(超全超详细)

8.2、case

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

8.3、for循环语句

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

案例:

shell脚本语言的使用(超全超详细)

案例:扫描当前文件

shell脚本语言的使用(超全超详细)

8.4、while

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

8.5、until

shell脚本语言的使用(超全超详细)

shell脚本语言的使用(超全超详细)

8.6、break continue

shell脚本语言的使用(超全超详细)

9、函数

shell脚本语言的使用(超全超详细)

所有函数在使用前必须定义,必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用

shell脚本语言的使用(超全超详细)

案例:求最值

shell脚本语言的使用(超全超详细)

案例:函数分文件

shell脚本语言的使用(超全超详细)

fun.sh

shell脚本语言的使用(超全超详细)

24_sh.sh

shell脚本语言的使用(超全超详细)

到此这篇关于shell脚本语言的使用(超全超详细)的文章就介绍到这了,更多相关shell脚本语言内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

--结束END--

本文标题: shell脚本语言的使用(超全超详细)

本文链接: https://lsjlt.com/news/21029.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • shell脚本语言的使用(超全超详细)
    1、shell的概述 shell 是一种脚本语言 脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译) shell 既是应用程序 又是一种脚本语言(应用...
    99+
    2022-06-04
    shell脚本 shell脚本语言
  • Shell脚本的超详细讲解
    Shell脚本是一种文本文件,包含了一系列的命令和控制结构,用于在Unix或类Unix操作系统上执行一系列的任务。下面是Shell脚...
    99+
    2023-08-16
    Shell
  • Shell脚本的超详细讲解(推荐!)
    目录一、Shell脚本基础概念1.1 什么是shell1.2 什么是shell脚本1.3 shell脚本的意义二、创建一个简单的Shell脚本2.1 创建一个shell脚本文件2.2 运行一个Shell脚本2.2.1 脚...
    99+
    2022-07-20
    shell脚本基本语法 shell脚本教程 shell脚本基本命令
  • C语言超详细讲解指针的使用
    目录指针概述自身类型指向类型代码例子数值型指针字符型指针单字符字符数组字符串型指针字符数组总结指针概述 C语言中指针也可以认为是一种类型,不同于数值型和字符型的类型。推演过去指针变量...
    99+
    2024-04-02
  • C语言超详细讲解getchar函数的使用
    目录一、getchar 函数二、缓冲区1、什么是缓冲区2、为什么要存在缓冲区3、缓冲区的类型4、缓冲区的刷新三、getchar 函数的正确使用1、getchar 的换行问题2、get...
    99+
    2024-04-02
  • BurpSuite全套使用教程(超实用超详细介绍)
    0x00 环境与安装 2021专业版推荐使用jdk11 BP : https://portswigger.net/Burp/Releases 注册机:https://github.com/h...
    99+
    2023-09-05
    java jar 开发语言
  • pymysql的使用超详细
    目录 一、安装pymysql二、使用步骤(1)导包(2)连接数据库(3)创建游标(4)操作数据库①添加数据【增】②删除/修改数据【删/改】③查询数据 (5)关闭连接pymysql总结 三、常见问题1)不知道ip地址(1)w...
    99+
    2023-08-18
    数据库 sql mysql python
  • C语言超详细梳理排序算法的使用
    目录排序的概念及其运用排序的概念排序运用插入排序直接插入排序希尔排序选择排序直接选择排序堆排序交换排序之冒泡排序总结排序的概念及其运用 排序的概念 排序:所谓排序,就是使一串记录,按...
    99+
    2024-04-02
  • C语言超详细讲解宏与指针的使用
    目录1、关于define2、初识指针(1)内存(2)示例(3)指针的使用示例(4)指针变量的大小1、关于define define是一个预处理指令,有两种用法,一种是用define定...
    99+
    2024-04-02
  • 超详细的JavaScript基本语法规则
    目录01 JavaScript (简称:js)js分三个部分:JavaScript是什么?js的代码可以分三个地方写:02 操作符操作符:一些符号-----用来计算关系运算符:关系运...
    99+
    2024-04-02
  • 如何使用shell脚本语言
    今天就跟大家聊聊有关如何使用shell脚本语言,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、shell的概述shell 是一种脚本语言脚本:本质是一个文件,文件里面存放的是 特定...
    99+
    2023-06-09
  • shell脚本语言怎么使用
    Shell脚本语言是一种在Unix/Linux操作系统上使用的脚本语言,用于编写批处理命令。下面是使用Shell脚本的基本步骤:1....
    99+
    2023-08-18
    shell
  • C语言超详细讲解指针的概念与使用
    目录一、指针与一维数组1. 指针与数组基础2. 指针与数组3. 一个思考二、指针与字符串三、指针和二维数组1. 指针数组与数组指针2. 指针数组3. 数组指针一、指针与一维数组 1....
    99+
    2024-04-02
  • C语言超详细讲解库函数
    目录1 返回整数的getchar函数2 更新顺序文件3 缓冲输出与内存分配4 库函数练习1 返回整数的getchar函数 代码: #include<stdio.h> ...
    99+
    2024-04-02
  • C语言 超详细讲解链接器
    目录1 什么是链接器2 声明与定义3 命名冲突3.1 命名冲突3.2 static修饰符4 形参、实参、返回值5 检查外部类型6 头文件1 什么是链接器 典型的链接器把由编译器或汇编...
    99+
    2024-04-02
  • C语言结构体超详细讲解
    目录前言1、结构体的声明1.1 结构的基础知识1.2 结构的声明1.3 结构成员的类型1.4 结构体变量的定义和初始化2、结构体成员的访问2.1 点操作符访问2.2 ->操作符...
    99+
    2024-04-02
  • C语言数组超详细讲解上
    目录前言1、一维数组的创建和初始化1.1 一维数组的创建1.2 一维数组的初始化1.3 一维数组的使用1.4 一维数组在内存中的存储2、二维数组的创建和初始化2.1 二维数组的创建2...
    99+
    2024-04-02
  • C语言超详细讲解线性表
    目录1. 顺序表1.1 管理结点1.2 顺序表的插入1.3 顺序表的删除1.4 顺序表的扩容2. 链表2.1 定义2.2 头部插入2.3 尾部插入2.4 任意位置插入2.5 任意位置...
    99+
    2024-04-02
  • Go语言安装和GoLand2021最全超详细安装教程
    目录 前述一.Go语言的安装和下载。二.GoLand2021安装和下载参考教程 前述         Go语言和GoLan...
    99+
    2024-04-02
  • 大数据分析R语言RStudio使用超详细教程
      RStudio是用于R编程的开源工具。如果您对使用R编程感兴趣,则值得了解RStudio的功能。它是一种灵活的工具,可帮助您创建可读的分析,并将您的代码,图像,注释和图解保持在一...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作