Shell脚本

news2025/1/16 5:35:12

文章目录

  • Shell脚本学习
    • 1. Shell概念
      • 1.1Shell脚本的好处
      • 1.2 Shell脚本的入门
        • 1.2.1 Linux环境中默认Shell版本
        • 1.2.2 Shell脚本
  • 1.2.3 编写简单的hello,world 脚本
      • 1.2.4 Shell 脚本的多种执行方法
        • 1.2.4.1 第一种 bash 或 sh 加文件的路径
        • 1.2.4.2 第二种 文件的路径直接执行
        • 1.2.4.2.1 赋权,可执行文件
        • 1.2.4.3 第三种 文件的路径前加 . 或 source 执行
        • 1.2.4.3.1 ./ 和 . 的区别是
        • 1.2.4.4 Shell 脚本涉及父子Shell 脚本
      • 1.3 变量:系统标量,自定义变量,全局变量,局部变量
        • 1.3.1 系统变量
        • 1.3.2自定义变量
        • 1.3.2.1 注意定义变量时,两边不能有空格,例如:
        • 1.3.2.2 变量赋值时可以使用 单引号'' 或双引号'"
        • 1.3.2.3 父子bash
        • 1.3.2.4 声明全局变量
        • 1.3.2.4.1 注意全局变量是父子继承规则,子变量值更改,父变量值不变
        • 1.3.3
    • 1.4 变量的运算![在这里插入图片描述](https://img-blog.csdnimg.cn/4dff446f030f4e13b48abe13f68f3eb4.png)

Shell脚本学习

1. Shell概念

Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。
在这里插入图片描述

1.1Shell脚本的好处

在这里插入图片描述

1.2 Shell脚本的入门

1.2.1 Linux环境中默认Shell版本

echo $SHELL

在这里插入图片描述

1.2.2 Shell脚本

#号 在sell 脚本中代表的是注释

在这里插入图片描述

1.2.3 编写简单的hello,world 脚本

#!/bin/bash
echo "hello,world"

在这里插入图片描述

1.2.4 Shell 脚本的多种执行方法

1.2.4.1 第一种 bash 或 sh 加文件的路径

在这里插入图片描述

1.2.4.2 第二种 文件的路径直接执行

在这里插入图片描述

1.2.4.2.1 赋权,可执行文件

chmod +x scripts/hello.sh # x 代表可执行文件,r 是读,w 是 写

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

1.2.4.3 第三种 文件的路径前加 . 或 source 执行

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

1.2.4.3.1 ./ 和 . 的区别是

./ :中 . 指的是相对路径
. : 指的是 点命令,后面跟的是他的参数
在这里插入图片描述

1.2.4.4 Shell 脚本涉及父子Shell 脚本

推荐使用这个命令 执行shell脚本命令 不会生成子shell进程,可以避免应为父子shell权限导致shell脚本执行不全

source /app/helloworld.sh #执行shell脚本命令
. /app.helloworld.sh #执行shell脚本命令 

在这里插入图片描述

2. #执行shell脚本命令,会生成子shell进程 
sh ./helloworld.sh #执行shell脚本命令
bash ./helloworld.sh #执行shell脚本命令
./helloworld.sh  #执行shell脚本命令 
/app/helloworld.sh #(绝对路径执行,相对路径也可以执行)执行shell脚本命令,问题:遇到权限不足,办法:加执行权限,chmod +x /app/helloworld 
#推荐使用这个命令  执行shell脚本命令 不会生成子shell进程
source /app/helloworld.sh #执行shell脚本命令
. /app.helloworld.sh #执行shell脚本命令 

1.3 变量:系统标量,自定义变量,全局变量,局部变量

1.3.1 系统变量

在这里插入图片描述

3.echo $HOME #查看系统定义的$HOME变量的值
4.env #查看系统定义的全局所有变量
env | less #更加清楚查看系统定义的全局所有变量
printenv | less #查看全局所有变量
printenv USER #打印$USER变量值(命令时,不用加$符号)
echo $USER #使用系统定义的$USER变量值 (命令时,加$符号)
set | less #查看所有定义的变量(全局,局部,用户自定义变量)

在这里插入图片描述

1.3.2自定义变量

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

#定义变量公式 变量名=变量值 (=两边不能有空格,字符串中有空格时,加双引号)
#变量是数字时 
a=2 #定义变量a=2 
echo $a #查看变量$a的值 显示2
#变量是字符串时
my_bianliang=hello
echo $my_bianliang #hello
my_bianliang="hello, world"
echo $my_bianliang #hello, world
#全局变量声明 export my_bianliang (导出,声明)
#全局变量是父子继承规则,
readonly b=5 #只读变量(也就静态变量,可以理解为常量),b不能在被赋值,也不能被撤销
unset 变量名 #撤销变量

1.3.2.1 注意定义变量时,两边不能有空格,例如:

在这里插入图片描述

1.3.2.2 变量赋值时可以使用 单引号’’ 或双引号’"

在这里插入图片描述

1.exho "hello,world $0" #xshell服务器窗口打印名命令 ,$0是变量
exho 'hello,world $0' #xshell服务器窗口打印名命令,直接输出,$0是字符串

1.3.2.3 父子bash

env #查看系统定义的全局所有变量
set #查看所有的变量(系统,自定义,全局,局部)

在这里插入图片描述

1.3.2.4 声明全局变量

语法: export 变量名
#全局变量声明 export my_bianliang (导出,声明)
注意#全局变量是父子继承规则,子变量值更改,父变量值不变
在这里插入图片描述

1.3.2.4.1 注意全局变量是父子继承规则,子变量值更改,父变量值不变

在这里插入图片描述

1.3.3

1.4 变量的运算在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Day07--wxs的概念以及其基本的用法

一.概念 1.啥子是wxs呢? *****************************************************************************************************************************************************************************************************************************…

【附源码】Python计算机毕业设计特大城市地铁站卫生防疫系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

数字电路和模拟电路-10时序逻辑电路的分析和设计

前言:学习同步时序逻辑电路的分析、设计 一、同步时序逻辑电路的分析 1、时序逻辑电路的分析步骤 步骤一 逻辑图 同步or异步 计数器or状态机 一条总线同步,多条总线是异步 计数器无输入,状态机有输入 状态机还分摩尔型和米里型 步骤二 驱动…

力扣(LeetCode)17. 电话号码的字母组合(C++)

回溯 将 222——999 和字母对应起来,用字符串数组保存。 递归遍历 digitsdigitsdigits 每一个数字,每一个数字对应的字母,又可以递归遍历,和下一个数字的字母组成排列。当排列长度等于 digitsdigitsdigits 的长度,就…

详解MySQL非常重要的日志—bin log

前言 bin log想必大家多多少少都有听过,它是MySQL中一个非常重要的日志,所以各位架构师们,如果有不了解的,一定要好好学习了,因为它涉及到数据库层面的主从复制、高可用等设计。 bin log是什么? bin log…

【博客538】BGP优雅重启机制

bgp优雅重启机制 背景 以BGP为代表的路由协议,从设计之初,就关注路由表的正确性,因为这是确保整个网络系统正常工作的最基本要求。因此每个BGP路由器,总是会以最快的速度收敛到整个网络最新的状态上。当一个BGP peer的BGP连接断开…

一种PEG衍生物Azide-PEG-Biotin|N3-PEG-Biotin|叠氮-PEG-生物素|956748-40-6

1、名称 英文:N3-PEG-Biotin,Azide-PEG-Biotin 中文:叠氮-聚乙二醇-生物素 2、CAS编号:956748-40-6 3、所属分类: Azide PEG Biotin PEG 4、分子量:可定制 5、质量控制:95% 6、储存&…

[附源码]java毕业设计食堂线上点餐系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

玩转MySQL:命令大全~忘记了SQL该怎么写就回来看看~

引言 相信大家在编写SQL时一定有一个困扰,就是明明记得数据库中有个命令/函数,可以实现自己需要的功能,但偏偏不记得哪个命令该怎么写了,这时只能靠盲目的去百度,以此来寻找自己需要的命令。 时间是最厉害的武器&…

Anaconda3安装部署(二) 百篇文章学PyQT

本文章是百篇文章学PyQT的第二篇,本文讲述如何安装Anaconda3工具,Anaconda3 在安装过程中会遇到很多问题,博主在本篇文章中将遇到和踩过的坑总结出来,可以供大家参考,希望大家安装顺利。包括 安装、遇到问题的解决方案…

实战十八:通过ItemKNN算法实现基于协同过滤的商品推荐 代码+数据

项目概述: 推荐系统任务描述:通过用户的历史行为(比如浏览记录、购买记录等等)准确的预测出用户未来的行为;好的推荐系统不仅如此,而且能够拓展用户的视野,帮助他们发现可能感兴趣的却不容易发现的item;同时将埋没在长尾中的好商品推荐给可能感兴趣的用户。ItemKNN推荐…

【专栏】基础篇05| Redis 该怎么保证数据不丢失(下)

前言 上一小节我们讲了AOF是什么以及它是如何保证Redis的Crash Safe的,这一节我们再来看一看Redis的RDB和AOF有何不同,两者是怎么样的关系 RDB的工作模式 RDB全称Redis Database,我们也常叫做Redis的内存快照,它与AOF最大的不同在…

基于java+ssm幼儿园教学网站管理系统vue-计算机毕业设计

项目介绍 要想做好幼升小的衔接工作,首先我们要明确小学生相对于幼儿园来说的不同之处。在幼儿园阶段,我们更多的是让小朋友做游戏,培养他们的学习兴趣等。而进入小学后,课程种类增加了,阅读信息不再是简单的图片&…

PHP房屋租售信息管理系统可以用wamp、phpstudy运行定制开发mysql数据库BS模式

一、源码特点 PHP房屋租售信息管理系统 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库系统主要采用B/S模式开发,开发环境为PHP APACHE,数据库为mysql5.0,使用php语言开发 PHP房屋租售信…

kubernetes组件再认知

背景 之前学习k8s的各组件还是感觉不深入, 只停留在名字解释上面。总是不能深入理解,例如应用部署后kuber-proxy会在master 和node上添加什么样的iptables规则、部署一个应用的完整流程( 手画各组件功能并介绍10分钟以上 )、schedule具体是怎么调度的、limit reque…

计算机视觉|针孔成像,相机内外参及相机标定,矫正的重要性

计算机视觉读书笔记|相机内外参及相机标定,矫正的重要性 这篇博客将介绍针孔成像,透镜(弥补了针孔成像曝光不足成像速度慢的缺点,但引进了畸变,主要是径向畸变和切向畸变,径向畸变主要是离中心越远越弯曲&…

Tableau指标排行

2022年11月15日,深圳数据交易所举行揭牌暨数据交易成果发布活动。 文章目录前言一、整体数据排行二、数据排行TOP N三、根据需要也可以显示具体排名总结前言 分享Tableau指标排行制作过程中遇到的问题及其解决方式,供各位小伙伴参考。 一、整体数据排行…

谷粒学院(二) 讲师管理模块

一、讲师管理模块配置 1、在service下面service-edu模块中创建配置文件 2. resources目录下创建文件 application.properties # 服务端口 server.port8001 # 服务名 spring.application.nameservice-edu# 环境设置:dev、test、prod spring.profiles.activedev# my…

java基于ssm网上超市购物商城-计算机毕业设计

项目介绍 网上超市是商业贸易中的一条非常重要的道路,可以把其从传统的实体模式中解放中来,网上购物可以为消费者提供巨大的便利。通过网上超市这个平台,可以使用户足不出户就可以了解现今的流行趋势和丰富的商品信息,为用户提供…

MySQL8.0优化 - 锁 - 从数据操作的粒度划分:表级锁、页级锁、行锁

文章目录学习资料锁的不同角度分类锁的分类图如下从数据操作的粒度划分:表级锁、页级锁、行锁表锁(Table Lock)表级别的S锁、X锁意向锁(intention lock)自增锁(AUTO-INC锁)元数据锁(…