07.shell之变量定义规则、变量叠加及变量分类

2023-11-11

目录

1.变量定义规则

2.变量叠加

3.变量的分类 

(如果用echo直接跟ls那么只会输出ls,并不会执行ls这个命令。只有我们用反引号或者$()把ls括起来时命令才能正确引用系统命令。)

Bash的变量

用某个特定字符串代表不固定的内容就是变量

使用内存空间保存数据,保存的数据叫变量的值,名称叫变量名称,用$调用

1.变量定义规则

1)变量名称可以由字母、数字和下划线组成,但不能以数字开头。

2)在bash中,变量的默认类型都是字符串型。

如果要进行数值运算,则必须修改指定变量类型为数值型。

3)变量用等号连接值,等号左右两边不能有空格。

4)变量的值如果有空格,需要使用单引号或双引号包括。

其中双引号括起来的内容“$” “\” “`”(反引号)都拥有特殊含义,而单引号括起来的内容都是普通字符。

5)在变量的值中,可以使用\转义符。

6)如果需要增加变量的值,那么可以进行变量值的叠加,不过变量需要用双引号包含"$变量名"或用${变量名}包含变量名。

7)如果是把命令的结果作为变量值赋予变量,则需要使用反引号或$()包含命令。

8)在字符串中调用变量的值,需要加花括号。

9)变量名建议大写,便于区分。

2.变量叠加

如$PATH:/root    #冒号为分隔符

3.变量的分类 

3.1用户自定义变量

这种变量是最常见的变量,由用户自由定义变量命名和变量的值。

1)用户自定义变量

2)变量调用:用$调用

3)变量查看:

命令:set

set 【选项】

子选项:-u:如果设定此选项,调用未声明的变量时会有提示(-u开启,+u关闭)。(用set命令,然后用grep命令找。 如果直接用set命令,会查询系统中所有变量,包含用户自定义变量和环境变量)

4)变量删除:unset 变量名

3.2环境变量

先自定义变量,然后export声明变量,则环境变量设置成功

1)环境变量设置与删除

首先声明了变量age=多少.然后用export命令声明为环境变量。之后用env命令找到age=多少。证明环境变量声明成功。 然后用【unset 变量名】格式删除变量。再次查找发现未找到age相关环境变量。(env和set的区别是,set命令可以查 看所有变量,而env命令只能查看环境变量

2)系统默认环境变量

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

07.shell之变量定义规则、变量叠加及变量分类 的相关文章

  • 将node.js +expressjs应用程序的NODE_ENV设置为ubuntu下的守护进程

    我按照这些说明让守护进程正常工作 http kevin vanzonneveld net techblog article run nodejs as a service on ubuntu karmic http kevin vanzon
  • 如何在 Linux/OS X 上温和地终止 Firefox 进程

    我正在使用 Firefox 进行一些自动化操作 尽管我可以从 shell 打开 Firefox 窗口 但我无法正确终止它 如果我kill火狐进程与kill 3 or kill 2当我下次打开新的 Firefox 窗口时 命令会询问我是否要在
  • 可以作为命令行参数传递多少数据?

    在 Linux 下生成进程时可以发送多少字节作为命令行参数 gahooa 推荐了一篇好文章http www in ulm de mascheck various argmax http www in ulm de mascheck vari
  • Python子进程Exec格式错误

    抱歉 如果这个问题很愚蠢 我正在使用Pythonsubprocess在 Ubuntu Natty 11 04 中调用 bat 文件的语句 但是 我收到错误消息 Traceback most recent call last File pfa
  • SMP 上如何处理中断?

    SMP 对称多处理器 多核 机器上如何处理中断 内存管理单元是只有一个还是多个 假设两个线程 A 和 B 运行在不同的内核上 同时 访问页表中不存在的内存页面 在这种情况下 将会出现页面错误 并从内存中引入新页面 将会发生的事件的顺序是什么
  • Bash 和双引号传递给 argv

    我重新设计了这个示例以使其简单 但我想做的是在 bash shell 执行它时获取一个嵌套双引号字符串作为单个 argv 值 这是脚本示例 set x command1 key1 value1 key2 value2 key3 value3
  • Python bash 管道

    我想将 python 脚本的输出通过管道传输到 bash 脚本 到目前为止我所做的是尝试使用os popen sys subprocess 并试图给出一个管道的例子 os popen echo P 1 1 591336 4927369 1
  • 为什么默认情况下不启用 arp 忽略/通告 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个需要经验才能回答的具体问题 为什么 arp ignore arp announce 在 Linux 安装 例如 debian 上默认不启用 有
  • 如何重命名 bash 函数?

    我正在围绕另一个定义 bash 函数的软件包开发一些方便的包装器 我想用我自己的同名函数替换他们的 bash 函数 同时仍然能够从我的函数中运行他们的函数 换句话说 我需要重命名它们的函数 或者为其创建某种持久别名 当我创建同名函数时 该别
  • 使用 grep 查找所有匹配的模式

    In txt1 S01A1P2 S01A1P5 S01A1P4 In txt2 data train wave S01A1P3 mfc data train wave S01A1P7 mfc data train wave S01A1P8
  • pthread_self() 返回的线程 ID 与调用 gettid(2) 返回的内核线程 ID 不同

    这句话来自于pthread self 的手册页 http linux die net man 3 pthread self 那么 我应该根据什么来决定是否应该使用pthread self or gettid确定哪个线程正在运行该函数 两者都
  • Docker exec linux 终端创建别名

    我有一个正在运行且独立的容器 我想在附加到该容器之前创建一个命令别名 当我连接到容器并输入 alias bar foo 创建别名 并可以通过以下方式检查 alias command 但如果我想做同样的事情码头执行者命令即这样 docker
  • wget 并行下载文件并重命名

    我有一个包含两列的文本文件 第一列是要保存的名称 第二列是资源的 url 地址 10000899567110806314 jpg http lifestyle inquirer net files 2018 07 t0724cheekee
  • BASH 中的空函数

    我正在使用 FPM 工具创建 deb 包 此工具在从支持的文件中删除包之前 之后创建 不幸的是FPM生成的bash脚本包含这样的函数 dummy 该脚本退出时出现错误 语法错误 意外 BASH 不允许空函数吗 哪个版本的 bash linu
  • aarch64 Linux 硬浮点或软浮点

    linux系统有arm64 有arm架构armv8 a 如何知道 Debian 运行的是硬浮动还是软浮动 符合 AAPCS64 GNU GCC for armv8仅提供硬浮动aarch64工具链 这与 armv7 a 的 GCC 不同 后者
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • Apache LOG:子进程 pid xxxx 退出信号分段错误 (11)

    Apache PHP Mysql Linux 注意 子进程 pid 23145 退出信号分段错误 11 tmp 中可能存在 coredump 但 tmp下没有找到任何东西 我怎样才能找到错误 PHP 代码中函数的无限循环导致了此错误
  • 查找并删除超过 x 天的文件或文件夹

    我想删除超过 7 天的文件和文件夹 所以我尝试了 17 07 14 email protected cdn cgi l email protection find tmp mindepth 1 maxdepth 1 ctime 7 exec
  • 从哪里获取 iostream.h

    我正在尝试在 Linux 中做一些事情 但它抱怨找不到 iostream h 我需要安装什么才能获取此文件 这个标准头的正确名称是iostream没有扩展名 如果您的编译器仍然找不到它 请尝试以下操作 find usr include na
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na

随机推荐

  • OCR图像识别技术的JAVA实现(一)

    转自 https blog csdn net weistin article details 78839804 OCR图像识别技术的JAVA实现 最近有个需求需要用图像识别 学习记录一下 目前网络上的开源的图像识别技术有很多 例如 OCRE
  • win10系统下 VS2019点云库PCL1.12.0的安装与配置

    目录 版本信息 安装教程 环境变量设置 VS中PCL的配置 使用 PCL的简单demo PCL简介 点云库全称是Point Cloud Library PCL 是一个独立的 大规模的 开放的2D 3D图像和点云处理项目 PCL根据BSD许可
  • 微信errcode大全

    errArr 1 gt errMsg system error errDesc 系统繁忙 此时请开发者稍候再试 40009 gt errMsg Invalid image size errDesc 图片大小为0或者超过1M 40097 gt
  • oracle open resetlogs

    oracle数据库在使用alter database open resetlogs后 oracle会重置日志序列号 而且会重置 联机重做日志内容 这样做是为了防止不完全恢复后日志序列会发生冲突 所以在执行完resetlogs后 需要重新备份
  • Win7专业版 下安装ArcGIS 9.3总结

    这几天在Win7专业版下安装ArcGIS 9 3 简直逼疯我了 废话不多说 进入正题 边说遇见问题边说步骤和解决方法 1 下载破解文件 下载地址http download csdn net source 3117196 有以下文件夹 图1
  • 【目标检测】24、VarifocalNet: An IoU-Aware Dense Object Detector

    文章目录 一 背景 二 动机 三 方法 3 1 IACS IoU Aware Classification Score 3 2 Varifocal loss 3 3 Star Shaped Box Feature Representatio
  • ios-swift-导入Alamofire出坑

    前言 在最近的swift项目中要用到网络请求 就用到了Alamofire网络库 是AFNetworking库的swift版本 将Alamofire利用Cocoapods导入到项目里面 总是下载不了新的版本 下载不了新的版本就是报错 我用的x
  • Jenkins 配置邮件通知

    1 安装邮件插件 通过系统管理 管理插件 可选插件 选择Email Extension Plugin插件进行安装 2 系统配置 系统管理 系统设置
  • MyBatis和Spring整合+Spring扩展

    ctrl shift t搜索类 ctrl o查看所有的属性和方法 ctrl t查看继承体系 jar包版本需要一致 MyBatis和Spring整合 在配置文件中 不要写空格 空格也会被解析 JavaSE基础内容 Java语法阶段 Java是
  • Cookie 和 Session 的工作流程(模拟网页登录)

    目录 今日良言 欲望以提升热忱 毅力以磨平高山 一 Cookie 和 Session的工作流程 二 模拟网页登录 三 Cookie 和 Session的区别和联系 1 联系 2 区别 今日良言 欲望以提升热忱 毅力以磨平高山 一 Cooki
  • java base64转Binary

    java base64转Binary Base64转byte byte bytes DatatypeConverter parseBase64Binary base64字符串 byte 转base64 String base64Str Da
  • Unity3d 按钮控制视频播放暂停

    有好几个办法 这边选择最简单的办法 创建一个游戏物体 啥都行 组件就是孙悟空的技能 我让游戏物体有啥技能就加啥组件 这里创建了个Quad平面 直接给他添加了组件叫Video Player 任何组件都有对应的类来存放它 直接把放到Unity
  • MyBatis复杂sql:多对一处理(association)和一对多(collection)

    多对一 association标签 老师和学生的例子 以学生为出发点 就是一个多对一的例子 即多个学生关联一个老师 首先搭建数据库 CREATE TABLE teacher id INT 10 NOT NULL name VARCHAR 3
  • 帮我用python写一个一组因变量和一组自变量的网络模型

    答 我可以帮你用Python实现一个网络模型 它可以实现一组自变量和一组因变量之间的关系 首先 你需要定义一个合理的损失函数 然后设计一个网络拓扑结构 用于连接输入和输出层 然后 你可以使用Python中的优化函数来最小化损失函数 以获得最
  • uniapp获取当前路由地址

    uniapp微信小程序获取当前路由地址 最近开发中有跳过或者返回的需求 所以需要获取到当前页面的路径 建议将代码放到公共js里面 所有也能均可调用 getCurrentRouter let routes getCurrentPages 获取
  • MQTT在Android端的使用详解以及MQTT服务器搭建、Paho客户端使用

    前言 最近的项目中使用了MQTT来接收后端推送过来的一些数据 这篇文章来介绍下Android端如何集成使用 关于MQTT相关介绍将不再阐述 由于光写代码不实践的接收下数据很难验证我们写的是否正确 所以我将简单介绍下如何配置个MQTT服务端
  • Seaborn 给子图添加大标题

    plt suptitle n 1600 在plt show 前加这一行 plt show
  • 如何用C++创建100个线程?

    include
  • android studio 安装过程中intelhaxm-android不能安装的解决办法

    今天刚刚安装了android studio 但是在安装AVD模拟器时 却出现This computer does not support disable bit等等 度娘说似乎是CPU intel vt 虚拟化 方面的问题 于是经过了下面的
  • 07.shell之变量定义规则、变量叠加及变量分类

    目录 1 变量定义规则 2 变量叠加 3 变量的分类 如果用echo直接跟ls那么只会输出ls 并不会执行ls这个命令 只有我们用反引号或者 把ls括起来时命令才能正确引用系统命令 Bash的变量 用某个特定字符串代表不固定的内容就是变量