【Shell编程】Shell中Bash变量-用户自定义变量

2023-11-14

系列文章

【Shell编程】Shell基本概述与脚本执行方式

【Shell编程】Shell中Bash基本功能


Bash变量-用户自定义变量

变量的命名规则

  • 不能以数字开头
  • 在Bash中,变量的默认类型都是字符串型,如果要进行数值计算,则必须指定变量类型为数值型。
  • 变量用等号连接值,等号左右俩测不能有空格
  • 变量的值如果包括空格,需要使用单引号或者双引号包括
  • 在变量的值中,可以用“\”转义符。
  • 如果需要增加变量的值,那么可以进行变量值叠加,不过变量需要用双引号包括“ 变量名”或用 变量名”或用 变量名或用{变量名}包含。
  • 如果是吧命令的结果作为变量值赋予变量,则需要使用反引号或()包含命令
  • 环境变量名建议大写,便于区分

变量分类

  • 用户自定义变量
  • 环境变量:这种变量中主要保存的是和系统操作环境相关的数据
  • 位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。
  • 预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。
  • 不会被子Shell继承

本地变量

  • 变量定义
  name="zhang meng"
  • 变量叠加
aa=123
aa="$aa"456
aa=${aa}789
  • 变量调用
echo  $name
  • 变量查看
 set
  • 变量删除
 unset name

实例

在这里插入图片描述

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

【Shell编程】Shell中Bash变量-用户自定义变量 的相关文章

  • 保存和恢复陷阱状态?管理多个陷阱处理程序的简单方法?

    有什么好的方法可以覆盖bash陷阱处理程序不会永久破坏可能已设置或尚未设置的现有处理程序 动态管理任意陷阱例程链怎么样 有没有办法保存陷阱处理程序的当前状态 以便以后可以恢复 在 Bash 中保存和恢复陷阱处理程序状态 我将提交以下堆栈实现
  • 无法执行'x86_64-conda_cos6-linux-gnu-gcc':没有这样的文件或目录(pysam安装)

    我正在尝试安装 pysam 执行后 python path to pysam master setup py build 这个错误的产生是 unable to execute x86 64 conda cos6 linux gnu gcc
  • 设置 Pyenv 的路径

    我正在尝试在我的服务器中设置 Pyenv 的加载路径 bashrc file 我正在关注这个tutorial https realpython com intro to pyenv 它要求我们在哪里设置pyenv到加载路径 然而 在我的 b
  • 如何在Python中独立于语言安装(linux)获取用户桌面路径

    我找到了 如何找到用户桌面的路径 的几个问题和答案 但在我看来它们都已失效 至少我找到的那些 原因是 如果用户安装的 Linux 不是英语 他或她的桌面很可能位于除 Desktop 例如 对于瑞典语 我相信它是在 Skrivbord 谁知道
  • 此 bash 命令在 Makefile 中未正确运行

    在 Makefile 里面我有这样的 release version poetry version cut f2 d echo release version 如果我运行 我的终端中的语句将毫无问题地运行 gt version poetry
  • 规范化 solaris 上的路径名

    在 GNU 系统上我只会使用readlink f SOME PATH 但 Solaris 没有 readlink 我更喜欢在 bash 中运行良好的程序 但如果需要的话其他程序也可以 Edit 到目前为止 我想到的最好的方法是使用 cd 和
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • 将“npm run start”的输出写入文件

    我想捕获的输出npm run start在一个文件中 我遇到了大量错误 我想更好地控制如何筛选输出 当我尝试时 npm run start gt log txt 我得到一个非常简短的文件 8 行 其结尾为 34m 39m 90m wdm 3
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • sleep 0 有特殊含义吗?

    我看到很多用法sleep 0在我的一个客户项目中 代码看起来像这样 while true sleep 0 end 阅读一些像这样的答案this https stackoverflow com questions 3727420 signif
  • C 程序从连接到系统的 USB 设备读取数据

    我正在尝试从连接到系统 USB 端口的 USB 设备 例如随身碟 获取数据 在这里 我可以打开设备文件并读取一些随机原始数据 但我想获取像 minicom teraterm 这样的数据 请让我知道我可以使用哪些方法和库来成功完成此操作以及如
  • 如何将 bash 脚本的整个输出保存到文件

    我正在尝试将 bash 脚本的整个输出保存到文件中 我目前在代码开头有一个参数 ip 地址 如下所示 bin bash USAGE Usage 0
  • 为什么 Linux 对目录使用 getdents() 而不是 read()?

    我浏览 K R C 时注意到 为了读取目录中的条目 他们使用了 while read dp gt fd char dirbuf sizeof dirbuf sizeof dirbuf code Where dirbuf是系统特定的目录结构
  • Bash 脚本大小限制?

    我有一个 bash 脚本 在 RHEL 或 OS X 上运行时出现以下错误 第 62484 行 意外标记 换行符 附近出现语法错误 第 62484 行 o gz 这是一个自动生成的脚本 用于解决我公司使用的 Grid Engine 计算集群
  • Docker:处理 tar 文件时出错(退出状态 1):设置枢轴目录时出错:不是目录

    我是 Docker 新手 不知道是什么原因导致此错误或如何诊断它 任何有关此问题的具体帮助或有关首先检查何处以诊断此类问题的提示将不胜感激 我的 Dockerfile FROM java 8 Install maven RUN apt ge
  • 如何在lua中获取shell脚本的返回码?

    我正在lua中执行一个脚本 os execute sh manager scripts update system sh f 我想获得脚本的输出 如果退出状态为 7 则返回 7 I tried local output os execute
  • 在 Linux 上的 Python 中使用受密码保护的 Excel 工作表

    问题很简单 我每周都会收到一堆受密码保护的 Excel 文件 我必须解析它们并使用 Python 将某些部分写入新文件 我得到了文件的密码 当在 Windows 上完成此操作时 处理起来很简单 我只需导入 win32com 并使用 clie
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复
  • 为什么我不能将 sed 的输出重定向到文件

    我正在尝试运行以下命令 someprogram tee dev tty sed s 2 gt output file 但当我去查看时 该文件始终是空白的 如果我删除 gt output file从命令末尾 我可以看到 sed 的输出 没有任

随机推荐

  • 机器人操作系统ROS(22)ROS安装opencv

    应该是再安装ROS时 已经默认安装opencv 但是有时候需要的环境不同 下面两种方法 第一种是 再安装一个版本 两个版本共存 第二种是 删除再安装 还有一种是Linux下安装OpenCV4 适用于Ubuntu等 还有一个知乎版本用树莓派4
  • Python——os.mkdir()在指定路径下创建文件夹 + 路径的连接理解

    引子 我在用路径连接函数 os path join 时发现 其连接的各级目录必须首先存在 才可以连接 也即是说连接的各文件夹必须首先存在 因为个各层级的目录以文件夹的形式表现出来 基于此 我开始研究如何先在指定路径下创建文件夹 1 在指定路
  • linux批量替换文件夹中所有文件内容

    记录一下 以防自己忘了 替换单个文件 sed i s 旧字符串 新字符串 g 文件名 替换整行 sed i 旧字符串 c 新字符串 文件名 替换文件夹中所有文件内容 sed i s 旧字符串 新字符串 g grep 旧字符串 rl 目录
  • MIPI协议之CSI2和DPHY

    目录 1 概论 2 CSI2协议 2 1 CSI 2数据帧格式 3 D PHY 3 1 数据通道模块的工作流程图 3 2 数据通道模块状态图 1 概论 MIPI协议 Moblie Industry Process Interface 移动行
  • Android 如何修改按钮默认的讨厌的蓝紫色

    1 在设置好按钮背景时 发现钮颜色始终没有改变 2 原来是默认主题themes的问题 在这里修改主题即可 3 找到 res values themes themes xml 双击打开themes xml文件 4 修改parent内容为 Th
  • Linux编程语言glob函数,linux glob函数man页与实例

    Linux Programmer s Manual NAME glob globfree find pathnames matching a pattern free memory from glob SYNOPSIS include in
  • 如何选择IO调度器

    概述 不格文学网 m vbuge com 由于对multi quque的IO调度算法不太熟悉 为了避免误人子弟 本文暂时只会介绍如何选择single queue的IO调度算法 等将来对multi queue有充分认识后再补充 如果不清楚什么
  • redhat激活管理

    redhat激活管理 redhat激活管理常用命令 查看 激活 删除订阅 刷新 redhat激活管理常用命令 https blog csdn net xixihahalelehehe article details 79108442 查看
  • pyqt5_1 Qt Designer组件讲解

    一 布局 Vertical Layout 纵向布局 Horizontal Layout 横向布局 Grid Layout 栅格布局 QGridLayout 网格布局 是将窗口分割成行和列的网络来进行排列 Form Layout 表单布局 在
  • 关于U盘中“文件夹EXE病毒”的解决方案

    笔者在使用U盘时 无意之间发现U盘所有文件的后缀名均变为 exe 经过查询相关资料 确认这是一种病毒 文件夹EXE病毒 一 简介 木马名称 Worm Win32 AutoRun soq 当把U盘插入到一台电脑后 U盘内生成了以原文件夹名字命
  • Ubuntu 安装 Oracle JDK

    1 写在前面 本文主要介绍如何在Ubuntu系统下安装Oracle JDK 2 环境准备 2 1 下载JDK 2 1 1 浏览器下载安装包 进入虚拟机浏览器访问官网地址 http www oracle com technetwork jav
  • 一分钟带你快速认识S参数

    S 参数是SI与RF领域工程师必备的基础知识 大家很容易从网络或书本上找到S Y Z参数的说明 但即使如此 在相关领域打滚多年的人 仍然可能还是会被一些问题困扰着 你懂S参数吗 不懂的话 那么请继续往下看 S参数简介 S参数 也就是散射参数
  • GitLab的使用 和 Git 、 Github、Gitlab的区别

    一 git github gitlab的区别 百度相关内容得到的理解 二 git最基本作用 版本控制 三 有集成了git的GIT安装包 github和gitlab都使用git该版本控制系统 来实现对代码的管理 所以 原先怎么用git操作gi
  • obs窗口捕获不到ppt白屏_如何用obs进行电脑直播,学会这篇,直播不再难

    很多人想在头条或者西瓜视频直播 除了用手机直播外 还可以用电脑进行直播 只要用obs进行简单设置即可达到要求 可以直播ppt 直播ps等 1 下载并安装好obs软件 点击文件 设置 在设置的窗口中 找到输出 一般输出的设置默认就好 无需更改
  • 微信浮窗是不是服务器保存,微信浮窗,真能解决小程序留存难题吗?

    小程序浮窗 到底有多大能量 作者丨Suvi 上个月 微信更新了7 0 5版本 对浮窗功能做了全新升级 支持最多同时添加5个项目 不含QQ音乐 并首次支持添加小程序 新版浮窗一上线 便被寄予厚望 各方将之解读为挽救公众号阅读量 提高小程序留存
  • 【8】测试用例设计-边界值法

    对于软件来说 错误经常发生在输入或输出值的关键点 边界值分析法是对软件的输入或输出边界进行测试的一种方法 它的所有测试用例都是在等价类的边界处设计 边界值分析需要选择一个或多个元素 以便等价类的每个边界都经过一次测试 与仅仅关注输入条件 输
  • QT+CUDA混合编程BUG(一)

    QT CUDA混合编程BUG 一 在QT中进行CUDA编程 CUDA库与其他外部库冲突 debug失败 问题描述 在QT中进行CUDA编程 单独使用CUDA编程时并未出现难以解决的问题 但当我讲CUDA处理的部分 加入已搭建完毕一项较大的Q
  • LeetCode第 292 题:Nim游戏(C++)

    292 Nim 游戏 力扣 LeetCode 剩下4块的时候 如果轮到你 那么你必输 先简单推一下 如果第n块的时候轮到你 n 5 必胜 拿1块 n 6 必胜 拿2块 n 7 必胜 拿3块 n 8 必败 无论我拿几块 对方都可以将我逼到4的
  • 基于Lasagne实现限制玻尔兹曼机(RBM)

    RBM理论部分大家看懂这个图片就差不多了 Lasagne写代码首先要确定层与层 RBM 正向反向过程可以分别当作一个层 权值矩阵互为转置即可 代码 coding utf 8 data format is bc01 written by Ph
  • 【Shell编程】Shell中Bash变量-用户自定义变量

    目录 系列文章 Bash变量 用户自定义变量 变量的命名规则 变量分类 本地变量 实例 系列文章 Shell编程 Shell基本概述与脚本执行方式 Shell编程 Shell中Bash基本功能 Bash变量 用户自定义变量 变量的命名规则