shell 基本语法第一讲之(变量的使用、文件名替换和参数扩展、命令代换、算术代换、单引号、双引号)

news2025/1/12 19:46:16

1、变量的使用

#!/usr/sh
#1、声明即赋值 注意:等号两边不能留空格,留了空格就编程一个命令+两个参数
varName=name
#2、使用变量
$varName
${varName}

2、变量的分类

shell 内变量
    在shell的解析环境中存在的变量
    全局范围的变量(全局变量)
        shell中*不使用任何修饰符修饰的变量*都是全局变量
        不管实在函数内还是在函数外都一样
        从申明语句调用开始一直到脚本结束,都是其声明周期
     局部变量
        用loca修饰
        只能生命在函数内
        从声明语句调用开始一直到函数结束
环境变量
      操作系统自带的,每个进程都会有(env查看)
      当启动一个子进程的时候,环境变量是从父进程拷贝到子进程的。
      子进程做任何环境变量的修改,不会影响父进程
      环境变量是单向传递的
    export varName=value
    或者
        varName=value
        export varName
删除变量
    不管是环境变量还是普通的shell内变量
    都可以使用unset    变量名 删除进程
  • 具体的使用
#!/usr/bash
#全局变量
globalVar="hello"

function test(){
    globalVar2="hello2" #不使用任何修饰符修饰的都是全局变量
    local localVar="world"
    echo $localVar #输出world
}
#调用函数
test
echo $globalVar $globalVar2
#输出 hello hello2

1、调用子进程

#!/bin/bash
echo 下面调用子脚本
#该子脚本相对路径。绝对路径都可以
source ./subShell.sh

3、文件名替换和参数拓展

touch 1.txt 2.txt 3.txt 4.txt
touch {1,2,3,4}.txt
#eg1
touch {3..5}_{2..5}.txt
#eg2
mkdir -vp day{1..3}/{logFile.log,log.txt,log.note}
#查看当前文件夹内容
find .
  • eg
    在这里插入图片描述

在这里插入图片描述

4、命令代换

由"`"反引号括起来的也是一条命令,shell先执行该命令,然后将输出结果立刻代换到当前命令行中。例如定义一个变量存放date命令的输出

DATE=`date`
echo "DATE=" $DATE
#命令代换也可以用$()表示
DATE=$(date)
echo  $DATE

5、算术代换

使用 ( ( ) ) 做 算 术 计 算 , ( ( ) ) 中 的 s h e l l 变 量 取 值 将 转 换 成 整 数 , 同 样 含 义 的 (())做算术计算,(())中的shell变量取值将转换成整数,同样含义的 (())(())shell[]等价

var=45
#执行下面命令,输出结果48
echo $((var+3))
echo $[var+3]或者$[$var+3]
#进制转换(将10以8进制来解析,得到的是10进制的8,加上11等于19)
echo $[8#10+11]

5、转义字符

用于去除单个字符的特殊意义(回车除外),换句话说。紧随其后的单个字符取字面值

#创建一个文件夹名为"$ $"的文件($间含有空格)可以这样
touch \$ $
\r \n
\$SHELL

6、单引号

shell脚本汇总的单引号双引号都是字符串的界定符,单引号用于保持括号内所有字符的字面值。即使引号内的\和回车也不例外。但是字符串中不能出现单引号

#输出结果$hello world
echo '$hello world'

7、双引号

被双引号括住的内容,将被视为单一字符、他防止通配符扩展,这点与单引号的处理方式不同

#输出结果是/bin/bash
echo "$SHELL"
param="i'm param"
echo "$param"

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

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

相关文章

【C++修炼之路】11. list类

每一个不曾起舞的日子都是对生命的辜负 list本节目标1. list的介绍及使用1.1 list的介绍1.2 list的使用1.3 模拟list节点的结构1.4 list类的封装补充:list的自带排序函数1. sort2. unique2. list的迭代器2.1 list的迭代器失效问题2.2 迭代器的分类2.3 迭代器的模拟实…

java基于Springboot的校园新闻网站-计算机毕业设计

项目介绍 本论文主要论述了如何使用JAVA语言开发一个校园新闻网站 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述校园新闻网站的当前背景以及系统开发的目的…

阿里全心打造,“Java核心精选宝册”助成长,面试实战一步到位

一、前言 接下来就是即将到来的金三银四了,这个时期是面试跳槽的高峰期,果不其然,有很多的朋友私信给我,询问我有没有对金三银四有帮助的一些笔记可以分享,所以就有了这篇文章,下面会大概的展示一下笔记的…

【Java面试八股文宝典之基础篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day12

大家好,我是陶然同学,软件工程大三明年实习。认识我的朋友们知道,我是科班出身,学的还行,但是对面试掌握不够,所以我将用这100多天更新Java面试题🙃🙃。 不敢苟同,相信大…

论文投稿指南——中文核心期刊推荐(电子、通信技术3)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄🎈 核心期刊在国内的应用范围非常广,核心期刊发表很多是国内作者晋升中的硬性要求,在…

java计算机毕业设计ssm新文道考研机构在线教学辅导系统tjv50(附源码、数据库)

java计算机毕业设计ssm新文道考研机构在线教学辅导系统tjv50(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都…

Zebec获BNB Chain生态大力支持,ZBC通证将陆续登录一线平台

在行业早期开始,流支付赛道就已经具备了早期的轮廓,而在流支付协议Zebec Protocol出现后,该领域被推向了一个新的发展高度,并得到加密领域以及传统商业领域的高度关注。而随着生态的商业进展不断推进、生态不断壮大,Ze…

解决 PHPMYADMIN 无法导入大数据库文件方法

有个运营多年的海外站点需要搬迁服务器,备份好数据库后,通过 phpmyAdmin 面板导入数据库时发现有文件大小限制,最大导入 100M 的数据库文件,自己的数据库备份文件足足有 175M,平时都是通过 Navicat 导入也没注意,刚好遇见问题那么就选择解决问题。 解决方法 1、在 phpM…

docker构建vue项目镜像并发布到dockerhub中使用

先将本地vue项目打包为一个镜像,不会的可以看文章:使用docker构建vue项目并成功运行在本地和线上_1024小神的博客-CSDN博客 然后开始注册一个dockerhub账号并登陆:然后点击 create repository Docker Hub 开始填写仓库名称和描述&#xff1…

什么是WMS?有哪些好用的wms仓库管理系统推荐?

通过本篇文章,您将了解以下问题:1、WMS是什么?使用价值有哪些 2、国内有哪些好用的WMS仓库管理系统推荐? 一、WMS是什么? WMS是仓库管理系统(Warehouse Management System) 的缩写。WMS仓库管理系统综合了产品的入库、…

关于 ABAP 开发对象的原始语言版本(Original Language)

当创建新的存储库对象时,例如 ABAP 词典中的程序、类或数据库表,必须指定其原始语言。ABAP 开发框架隐式将当前登录语言设置为其原始语言。 作为开发项目中开发对象的一部分创建的所有可翻译文本(包括描述性短文本和长文本、程序的文本元素以…

uni-app DAY08

复习: 1、uni-app中常用组件 ①内置组件:页面(page)、视图(view)、滚动视图(scroll-view)、文本(text)、富文本(rich-text)、图片(image)、输入框(input)、按钮(button)、导航器/超链接(navigator)、轮播(swiper)、拾取器/下拉菜单/选择器(picker)、单…

云弹性:它如何影响云计算?

云弹性是云计算最重要的特性之一。云弹性是指云提供商根据企业流程的需求向该流程提供资源的过程。云提供商拥有自动交付或删除资源的系统,以便为每个项目提供适当数量的资产。对于云用户来说,他们将被赋予足够的权力来运行他们的工作流,而不…

Java高级——Graal编译器介绍

Graal编译器介绍 Graal编译器由Java实现,支持提前编译和即时编译 JDK9推出Java虚拟机编译器接口(Java-Level JVM CompilerInterface,JVMCI),将Graal从HotSpot代码中独立出来(即可外部挂载) 构…

Klarf 文件可视化工具

1.技术框架 1.1 前端: Vue3 网页版Electron Quasar 可生成 EXE、APK 等客户端Element-Plus 控件axios 跨域 1.2 后端: Flask 提供接口 2. Web 版和客户端版 2.1 Web 版页面 2.2 客户端界面 2.3 使用流程 在 SenseTools-Klarf-Parser/data/test_f…

小程序开发,低成本运营教程

近年来,小程序DAU呈现出爆发式增长的趋势,相比app来说它具有一定的优势,不占用手机内存,在应用内就可使用,对用户来说非常便利。 另外,由于小程序的开发门槛和成本都比较低,企业还能依托平台获…

ImmunoChemistry丨ICT艾美捷ELISA平板盖说明书

使用ImmunoChemistry艾美捷ELISA平板盖减少样品蒸发并防止免疫测定培养期间的污染。ELISA平板盖是透明的粘性塑料片,用于在培养分析时覆盖和密封微量滴定板孔。 ImmunoChemistry Technologies简称"ICT",研究工具众多,包含细胞蛋白酶、细胞凋亡…

【MyBatis】订单商品数据模型分析

1. 数据模型分析思路 每张表记录的数据内容 分模块对每张表记录的内容进行熟悉,相当于你学习系统需求(功能)的过程。 每张表重要的字段设置 非空字段、外键字段 数据库级别表与表之间的关系 外键关系 表与表之间的业务关系 在分析表与表之…

【环境配置】使用Docker搭建LAMP环境

这篇文章不是介绍DOCKER是什么,也不是阐述DOCKER的核心:镜像/容器和仓库之间的关系,它只是一篇让刚刚接触DOCKER的初学者,在没有完全了解DOCKER是什么之前,也能尽快的在Linux系统下面通过DOCKER来搭建一个LAMP环境,这是其一&#…

【代码审计-PHP】基于Thinkphp框架开发的

目录 一、Thinkphp基本结构 1、框架目录 2、判断框架、版本 3、入口文件 4、资源文件 5、调试开关 6、URL路由 二、基本函数 1、请求 2、交互: 3、响应: 三、危险函数 四、已有漏洞 五、漏洞检测工具 六、工具 一、Thinkphp基本结构 1、框…