Linux: 变量

linux变量默认值设置 := :? :+ :- ''' # linux shell username="";echo “${username:+$LOGNAME}” 修改原变量(username)值 := 变量username未定义或者空值,则被替换 = 未定义则被替换 不修改变量值, 只在${}中替换变量值 :- username未定义或者空值,则${}输出被替换,变量值不变 - username未定义,则${}输出被替换,变... 阅读详情

今天回顾下 Linux 的变量
本次内容来此 书本 鸟哥Linux私房菜,特此声明;

1. 变量的命令规则

  • 变量与变量的内容以一个等号来连接
    • myname=Coder
  • 等号两侧不能有空格:空格在变量值中需要做转义处理
    • nyname = Coder #command not found
  • 变量名必须以 字母开头,可以由字母和数字组成, 切记不能以数字开头,会报错
    • 9myname=Coder # command not found
  • 变量值中要是有空格需要处理
    • 用双引号将变量值结合起来
      • var=”lang is”
    • 用单引号将变量值集合起来
      • var=’lang is’
    • 使用转义字符 \
      • var=lang\ is

那么双引号和单引号的区别是什么呢?

  • 双引号 : 在出现特殊字符如 $ 等,可以保持原本的特性:
    • var=”lang is $LANG” == lang is en_US.UTF-8
  • 单引号 : 在出现特殊字符式子,按一般纯文本字符处理
    • var=”lang is LANG"==langisLANG
  • 变量值得内容增加时,
    • PATH=”$PATH”:/~/bin
    • PAHT=${PATH}:/home/bin
  • 在一串指令的执行中,还需要执行其它额外的指令所提供的信息时:
    • 使用 $(指令)
      • var=/lib/modules/$(uname -r)/kernel
    • 使用 ‘指令’
      • var=/lib/modules/’uname -r’/kernel
  • 将变量设为环境变量
    • export PATH
  • 取消变量:
    • unser myname

2. 环境变量的功能;

  • 使用 env 和 export 查看环境变量与常见环境变量说明;
  • 使用 set 观察所有的变量 环境变量与自定义的变量;
  • export var: 自定义变量转换成环境变量
    • 对于环境变量和自定义变量的说明大家都知道,就不复习了,引用书上一段话:当启动一个shell, OS 会分配一记忆区给 shell 使用,
      这个内存里的变量可以给子程序使用;若在父程序利用 export 功能,可以让自定义变量的内容写到上述的记忆区当中(环境变量);当加载另一个 shell 时(亦即启动一个子程序,而离开了原本的父程序,)子 shell 可以将夫 shell 的环境变量所在的记忆区块倒入到自己的环境变量区块当中;
  • 变量的键盘读取
    • read -p “Please keyin you filename: ” filename
      • system.in readme.txt
    • echo $filename : readme.txt
  • 宣告变量的类型
    • declare [-aixr] var
      • -a : 将var 定义为数组类型
      • -i : 将 var 定义为整数类型
      • -x : 将 var 声明为环境变量
      • -r : 将变量设置为只读
  • 数组变量
    • var[1]=”small”
    • var[2]=”big”
    • “var[1],{var[2]}”

3. 变量内容的删除、取代和替换

  • ${变量#关键词}
    • 若变量内容从头开始的数据符合 关键词,则将符合的 最短 数据删除,
  • ${变量##关键词}

    • 若变量内容从头开始的数据符合 关键词, 则将符合的 最长 数据删除,
  • ${变量%关键词}

    • 若变量内容从尾部开始的数据符合 关键词,则将符合的 最短 数据删除,
  • ${变量%%关键词}
    • 若变量内容从尾部开始的数据符合 关键词, 则将符合的 最长 数据删除,

  • ${变量/旧字符串/新字符串}

    • 若变量内容符合旧字符串,则 第一个 旧字符串会被新字符串取代,
  • ${变量//旧字符串/新字符串}

    • 若变量内容符合旧字符串,则 全部 旧字符串会被新字符串取代,

变量初始值得设定: 判定一个变量是否存在,如果变量存在则使用既有的设定,如果变量不存在则给定一个常用的设定。

  • var1=${var2-expr}
    • 如果var2没有设定,则var1就取expr的值; 否则取var2设定的值;
  • var1=${var2:-expr}
    • 如果var2么有设定,或者为空,则var1取expr的值
Linux变量默认值设置、:=、:?和:+操作符 在Linux编程中,变量的默认值设置是一种常见的技术,它允许我们在变量未定义或为空时为其设置一个默认值。在这篇文章中,我们将介绍Linux中的默认值设置技术,并重点讨论:=、:?通过使用这些变量默认值设置操作符,我们可以更加灵活地处理变量的默认值,并根据需要采取相应的操作。变量已经定义为"John",它仍然会被覆盖为"Anonymous"。和:+操作符,并在你的编程中发挥作用。变量是否已定义,此时它已定义并具有值"John",所以输出"Name: John"。的默认值设置为"John",然后使用。 阅读详情

相关推荐

解决Linux中matplotlib出现RuntimeError: 无效的DISPLAY变量的问题

当在Linux环境下使用matplotlib库绘制图形时,有时会遇到"RuntimeError: 无效的DISPLAY变量"的错误。这个错误通常发生在没有正确设置DISPLAY变量的情况下,因为matplotlib需要一个有效的显示设备来显示图形窗口。通过使用这个示例代码,您可以在Linux环境下绘制matplotlib图形,而不需要显示设备,从而避免了"RuntimeError: 无效的DISPLAY变量"错误。,您将matplotlib的后端设置为无头模式,它不需要显示设备来生成图形。

WELL_CODER的博客 411

linux 变量定义

本地变量:用户自定义的变量。 环境变量:用于所有用户变量,用于用户进程前,必须用export命令导出。 位置变量:$0(脚本名),$1-$9:脚本参数。 特定变量:脚本运行时的一些相关信息。 $# 传递到脚本的参数个数$* 传递到脚本的参数,与位置变量不同,此选项参数可超过9个$$ 脚本运行时当前进程的ID号,常用作临时变量的后缀,如haison.$$$! 后台运行的(&)最...

weixin_34392906的博客 248

Linux系列:将命令结果复制给变量的2种方法

目录 方法1 方法2 例子 方法1 $(命令) 方法2 反引号:`命令` 例子

NIO4444 1684

shell 实现变量累加

shell操作中偶尔也会用到全局变量累加,用来计数等用途,代码如下: #!/bin/bash count=0 #每次累加1 count=$((${count} + 1))

zx8167107的博客 2万+

Dify插件离线部署全攻略:从下载到安装的完整流程

本文详细介绍了Dify插件离线部署的完整流程,针对企业内网等无网络环境需求。核心步骤包括在联网环境下载插件包、在特定Python 3.12.9环境下使用专用工具进行离线重打包,以及最终在离线Dify环境中安装验证。重点解决了离线安装的核心难题,并提供了环境配置、批量处理和故障排查等实用技巧,帮助用户实现Dify插件的顺利离线部署。

seed的博客 656

CST中PEC结构涂覆吸波材料的RCS仿真与优化

本文详细介绍了在CST Studio Suite中对PEC结构涂覆吸波材料进行RCS仿真的完整流程与优化策略。通过精确的材料参数设置、涂层厚度优化和仿真技巧,有效降低目标的雷达散射截面,提升隐身性能。文章结合实战案例,为工程师提供了一套高效的RCS仿真与优化解决方案。

c2d3e4f的博客 691

linux变量篇(一) 变量定义

环境:ubuntu10 内容:变量定义,调用,叠加 方法: 变量名=变量值     注意:等号左右不能够有空格 如下图: 2.变量叠加 在说变量叠加之前,先说明一下linux里面的变量默认为字符型 如下图: 再如下面 这张图里面内容就多了有以下知识点: ①$var和${var}功能一样,之所以有大括号是为了划分变量名,比如var是一个变量,但是$

MoWang_CZ的博客 975

零基础学simulink仿真建模--基于Simulink进行农业机械用开关磁阻电机的仿真建模

特点结构简单:无电刷、换向器等易损件,维护成本低。坚固耐用:适合恶劣的工作环境,如农业机械作业现场。宽调速范围:通过适当的控制策略可以实现较宽的速度调节范围。挑战非线性特性:SRM的电磁特性和转矩特性具有高度非线性。复杂性:涉及电气、机械动力学以及控制系统的设计与集成。实时性要求:需要快速响应以适应不断变化的操作条件。多变量优化:包括电流控制、速度控制等多个方面需综合考虑。使用Simscape Electrical库来构建一个开关磁阻电机模型。

amy_mhd的博客 909

linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法

如果脚本中急需要一组被定义的变量,也需要一些不该被定义的变量,那么在脚本执行任务之前组合这两种句法,肯定可以实现正确的设置。当删除上述的-语句中的冒号,即变成-的时候,因为username变量已被定义,输出将为空。有了这个特殊的句法,只有当变量username已被定义,而且有一个实际的非空值时,变量username才会被设置为变量LOGNAME的值。在这个表达式中,如果变量VAR还没有被设置,那么“=”之后表达式的值将被赋给它,这个值可能是一个数字,一个字符串,或者是另外一个变量。...

qq_23251505的博客 1079

立创·庐山派-K230-CanMV(嘉楠勘智)开发板通过ATK-ESP8266实现图像识别数据无线传输至原子云

本文详细介绍了如何使用立创·庐山派-K230-CanMV开发板,通过ATK-ESP8266 WIFI模块实现图像识别数据的无线传输至原子云平台。内容包括硬件连接、软件环境搭建、AT指令控制、原子云连接及数据上传的全过程,并提供了实用的调试技巧和常见问题解决方案,为物联网应用开发提供了完整实践指南。

potato的博客 740

基于MATLAB的最大重叠离散小波变换(MODWT)算法详解

最大重叠离散小波变换(Maximal Overlap Discrete Wavelet Transform, MODWT)是DWT的重要改进形式,由Percival和Walden等人在20世纪90年代系统提出并完善。MODWT通过消除下采样操作,采用样本平移不变的分解方式,解决了DWT的多个固有缺陷。MODWT的核心创新在于取消下采样环节。与DWT每级分解后对滤波输出进行二分下采样不同,MODWT在每一级都使用相同的滤波器,但通过插入零值的方式调整滤波器系数,保持每级系数数量与原始信号相同。

qq_42212808的博客 115

Linux:导出环境变量命令export

本文介绍了Linux中export命令的用法,主要用于创建和导出环境变量。环境变量与普通变量的区别在于可以被Shell子进程继承。通过export命令可以将普通变量转为环境变量,使用-n选项可以取消导出。文章还演示了环境变量的继承效果,并说明临时修改的系统变量可能被覆盖。最后指出永久性环境变量需写入配置文件(如.bashrc)而非仅在命令行中export。全文通过具体示例展示了export命令在变量导出、函数导出等方面的实际应用。

保持终身学习的能力,温故而知新 2578

BES 平台 SDK之 美格信Dongle 连接

最近项目到了试产阶段,需要用到美格信的Dongel 来测试ANC 相关功能。在此简单介绍下如何连接Dongel 的操作步骤。

谢文浩博客 924

Linux:环境变量

本文介绍了Linux环境变量的概念、常见类型及获取方式。环境变量是操作系统级别的动态参数,可被所有进程访问,具有全局性。常见环境变量包括PATH(查找命令目录)、HOME(用户主目录)、SHELL(终端程序路径)等。获取方式分为终端操作和编程实现:终端可通过echo、env、printenv等命令查看;编程中C/C++可用getenv()函数或main函数的envp参数获取,Shell脚本直接使用$变量名读取。环境变量与C/C++进程的关系体现在:它们是进程级配置,进程继承父进程环境变量副本,可通过标准库接

2401_87353862的博客 1049

VTsystem背景检查函数Value Valid

Value Valid是个非常实用的函数,如何让它灵活的为我们所用,便是本文的内容。

欢迎来到eee的博客 793

【用unity实现100个游戏之7】实现一个类《杀戮尖塔》的卡牌回合制游戏(附项目源码)

【用unity实现100个游戏之7】实现一个类《杀戮尖塔》的卡牌回合制游戏(附项目源码)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1万+

对于Linux:环境变量的解析

本文介绍了Linux系统中的环境变量及其重要作用。首先解释了命令行参数的概念,说明main函数如何通过argc和argv接收外部参数。接着详细讲解了环境变量的特性:全局性(所有程序可见)和继承性(父进程传递给子进程)。文章区分了本地变量和环境变量的差异,阐述了环境变量的存储位置和管理方式(export/unset命令),并列举了PATH、HOME等常用环境变量的用途。最后通过代码示例展示程序如何读取环境变量,并说明了环境变量的永久配置方法。全文强调环境变量是系统运行的"隐形骨架",

2503_92929084的博客 783

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

[Linux] :shell变量包括两种变量

【注意】在赋值的时候,等号两边不能有空格,否则该语句被视为命令以及其参数! shell变量包括两种变量 1.本shell私有的变量:通过赋值语句定义好的变量,可以通过如下方法定义shell变量        A1="1234"        delcare A2="

happygongzhuo的专栏 3236

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

八、Linux Shell 脚本:变量与字符串

Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。

专注于 Agent 工程、AI 产品、Harness Engineering、LLM 算法等方向,OpenMathModel、Nivik 等开源项目作者 6万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法...

linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法 变量替换和变量默认值设置是紧密相关的,至少从概念出发是如此。 参数扩张是将类似于变量的参数用它的值来替换。例如以“echo $VAR”的形式调用一个简单的变量。此外还有更多的特性可以访问。这个句法还包含一些没有扩展的特性,虽然这些特性自身很有意义。首先,这类特性执行默 认变...

whsq1987的博客 143

Linux入门指南:Linux环境变量解析

你是不是经常听说Linux环境变量,但又对它一头雾水?别着急,让我们一起来揭开这个神秘的面纱,探索一番吧!先来理解一下,环境变量到底是个什么玩意儿?简单来说,它就是一些系统级别的信息,比如命令搜索路径、用户配置等等。在Linux里,环境变量扮演着非常重要的角色,影响着系统的运行和用户的体验。你可能会问:“有哪些环境变量是我经常会碰到的呢?”别着急,这里给你列举一些。比如,PATH是用来指定可执行文件的搜索路径,HOME代表用户的主目录,USER表示当前登录的用户名,还有一堆类似的东西。

让技术没有门槛 1614

linux输出变量的类型名称,Linux :python变量的命名以及变量的命令

什么是变量?变量名只有在第一次出现才是定义变量(变量名再次出现,不是定义变量,而是直接使用之前定义的变量变量的定义在 python 中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建等号(=)用来给变量赋值=左边是一个变量名=右边是存储在变量中的值变量名 = 值变量定义之后,后续就可以直接使用了变量的命名标识符和关键字变量的命名规则标识符和关键字 标识符 标识符就是程序员定义的变量名,函...

weixin_42443533的博客 425

linux学习1:变量

1、标准路径 linux通常包括一些存储系统程序的标准路径: (1)/bin:二进制文件目录,用于存放启动系统时用到的程序。 (2)/usr/bin:用户二进制文件目录,用于存放用户使用的标准程序。 (3)/usr/local/bin:本地二进制文件目录,用于存放软件安装的程序。 除此之外,当系统管理员(如root)登录系统时,使用的PATH变量可能还包含存放系统管理程序的目录,如/sbin和/usr/sbin。 可选的操作系统组件和第三方应用程序有可能被安装在/opt目录下,安装程序可以...

weixin_42108210的博客 271

Linux Shell 变量扩展进阶:深入理解 $[未定义标签:] 特殊用法。

Shell 脚本中的变量扩展功能非常强大,尤其是这类语法,能够处理变量未定义或为空时的默认值、错误控制等场景。其中和等变体在实际开发中尤为常见。以下将深入剖析这些用法,并结合代码示例说明其应用场景。当parameter未定义或值为空时,此语法会返回word的值;否则返回parameter的值。parameter本身的值不会被修改。/bin/bash# 示例1:变量未定义时使用默认值echo "未定义的变量: ${unset_var:-默认值}" # 输出: 默认值# 示例2:变量为空时使用默认值。

MTJ_ga19的博客 215

【Linux实践】实验八:Shell程序的创建及变量

实验内容 1、查看当前系统下用户Shell定义的环境变量的值。 2、定义变量AK的值为200,并将其显示在屏幕上。 3、定义变量AM的值为100,并使用test命令比较其值是否大于150。 4、创建一个简单的Shell程序,其功能为显示计算机主机名以及显示系统日期和时间,并执行该程序。

iFulling的博客 1502
上一篇: GitHub: (3)版本回退
下一篇: Linux: date 和 随机数
Coder-Qian
博客等级 码龄11年 63粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值