Shell变量

Shell 变量 在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:数组名=(值1 值2 ... 值n)例如:或者value0value1value2value3还可以单独定义数组的各个分量:可以不使用连续的下标,而且下标的范围没有限制。 阅读详情

                            Shell变量

1.环境变量:

n         HOME 用于保存注册目录的完全路径名。

n         PATH 用于保存用冒号分隔的目录路径名,Shell将按PATH变量中给出的顺序搜索这些目录,找到的第一个与命令名称一致的可执行文件将被执行。

n         TERM 终端的类型。

n         UID 当前用户的识别字,取值是由数位构成的字串。

n         PWD 当前工作目录的绝对路径名,该变量的取值随cd命令的使用而变化。

n         PS1 主提示符,在特权用户下,默认的主提示符是#,在普通用户下,默认的主提示符是$。

n         PS2 在Shell接收用户输入命令的过程中,如果用户在输入行的末尾输入“/”然后回车,或者当用户按回车键时Shell判断出用户输入的命令没有结束时,就显示这个辅助提示符,提示用户继续输入命令的其余部分,默认的辅助提示符是>。

2.用户定义的变量:

n         用户定义的变量由字母和下划线组成,并且变量名的第一个字符不能为数字(0~9)。与其他UNIX名字一样,变量名是大小写敏感的。用户可以在命令行上用"="给变量赋值

n         用户将变量赋值后,为了防止以后对该变量的修改,可以用以下命令将该变量设置为只读变量: readonly variable

n         在任何时候,创建的变量都只是当前Shell的局部变量,所以不能被Shell运行的其他命令或Shell程序所利用,而export命令可以将一个局部变量提供给Shell执行的其他命令使用,其格式为:export 变量名    

3.位置参数:

  位置参数是一种在调用Shell程序的命令行中按照各自的位置决定的变量,是在程序名之后输入的参数。位置参数之间用空格分隔,Shell取第一个位置参数替换程序文件中的$1,第二个替换$2,依次类推。$0是一个特殊的变量,它的内容是当前这个Shell程序的文件名,所以,$0不是一个位置参数,在显示当前所有的位置参数时是不包括$0的。

4.预定义变量:

  预定义变量和环境变量相类似,也是在Shell一开始时就定义了的变量。所不同的是,用户只能根据Shell的定义来使用这些变量,而不能重定义它。所有预定义变量都是由$符和另一个符号组成的,常用的Shell预定义变量有:

n         $# 位置参数的数量。

n         $* 所有位置参数的内容。

n         $? 命令执行后返回的状态。(0成功,非0失败) 

n         $$ 当前进程的进程号。(最常见的用途是用做暂存文件的名字以保证暂存文件不会重复)

n         $! 后台运行的最后一个进程号。

n         $0 当前执行的进程名。

5.参数置换的变量:

  Shell提供了参数置换功能以便用户可以根据不同的条件来给变量赋不同的值。参数置换的变量有4种,这些变量通常与某一个位置参数相联系,根据指定的位置参数是否已经设置类决定变量的取值,它们的语法和功能分别如下。

l         变量=${参数-word}:如果设置了参数,则用参数的值置换变量的值,否则用word置换。即这种变量的值等于某一个参数的值,如果该参数没有设置,则变量就等于word的值。

  $echo Hello $UNAME 
  结果显示
:Hello 
  
$echo Hello ${UNAME: -there} 
  结果显示
:Hello there
  
$echo $UNAME 
  结果显示: (空
) 
  
$UNAME=John 
  
$echo Hello ${UNAME: -there} 
  结果显示
:Hello John 
  可以看出,变量替换时将使用命令行中定义的默认值,但变量的值并没有因此而改变。

l         变量=${参数=word}:如果设置了参数,则用参数的值置换变量的值,否则把变量设置成word,然后再用word替换参数的值。注意,位置参数不能用于这种方式,因为在Shell程序中不能为位置参数赋值。

  $echo Hello $UNAME
  结果显示
:Hello
  
$echo Hello ${UNAME:=there}
  结果显示
:Hello there
  
$echo $UNAME
  结果显示
:there
  
$UNAME=John
  
$echo Hello ${UNAME:-there}
  结果显示
:Hello John 
  变量替换的值也可以是` `括起来的命令
: 
  $USERDIR={$Mydir: -`pwd`} 

l         变量=${参数?word}:如果设置了参数,则用参数的值置换变量的值,否则就显示word并从Shell中退出,如果省略了word,则显示标准信息。这种变量要求一定等于某一个参数的值。如果该参数没有设置,就显示一个信息,然后退出,因此这种方式常用于出错指示。

      $UNAME=
  $echo $ {UNAME?
"UNAME HAS NOT BEEN SET"}
  结果显示
:UNAME HAS NOT BEEN SET 
  
$UNAME=Stephanie
  $echo $ {UNAME?
"UNAME HAS NOT BEEN SET"} 
  结果显示
:Stephanie
  当没有指定message时,shell将显示一条默认的消息,例如
: 
  
$UNAME=
  $echo $ {UNAME?
}
  结果显示:sh:UNAME:parameter null or not set 

l         变量=${参数+word}:如果设置了参数,则用word置换变量,否则不进行置换。

 $ERROPT=A
  
$echo ${ERROPT: +"Error tracking is acitive"}
  结果显示
:Error tracking is acitive
  
$ERROPT=
  
$echo ${ERROPT: +"Error tracking is acitive"}
  结果显示: (空) 

  所有这4种形式中的“参数”既可以是位置参数,也可以是另一个变量,只是用位置参数的情况比较多。

 

 
Shell 编程-Shell 变量详解 今天给伙伴们分享一下Shell 编程-Shell 变量,希望看了有所收获。 阅读详情

相关推荐

利用pyGAM实现广义可加模型(GAM)的实战指南

本文提供了利用pyGAM库实现广义可加模型(GAM)的完整实战指南。通过乳腺癌和房价预测案例,详细讲解了从环境配置、模型构建、核心可视化(部分依赖图)到参数调优(n_splines, lam)的每一步。重点展示了GAM如何平衡模型准确性与可解释性,帮助数据科学家在Python中高效应用这一强大工具。

weixin_29053383的博客 329

shell变量

学习笔记

赟文武的博客 338

新手也能搞定!用ADS 2023从零设计一个超宽带Wilkinson功分器(附完整版图)

本文详细介绍了如何使用ADS 2023从零开始设计超宽带Wilkinson功分器,涵盖介质板参数设置、微带线计算优化、版图生成验证等关键步骤。通过实例演示和常见问题排查,帮助射频工程新手快速掌握功分器设计技巧,提升设计效率。

weixin_42692935的博客 476

awk使用shell变量及shell使用awk中的变量

在写shell脚本时,经常会使用到awk程序。但是有些复杂的逻辑,可能需要在awk中使用在shell中定义的变量,而且awk程序处理之后,产生的中间变量,还需要在shell中继续处理。 一、那如何在awk中使用在shell中定义的变量呢? 方法一:使用"'把shell变量包起来,即"'$var'";注意是“双引号+单引号+shell变量+单引号+双引号”的格式。 这种写法大家无需改变

rj042的专栏 6万+

手把手保姆级|Python爬取微信公众号文章完整版,反反爬策略拉满,附可运行完整代码(永久可用)

做Python爬虫的朋友都知道,爬取微信公众号文章 绝对是爬虫领域的「香饽饽」也是「硬骨头」。一方面,微信公众号的文章是极具价值的数据源:不管是自媒体从业者做竞品分析、新媒体运营者整理干货、还是个人学习收集资料,都需要批量爬取公众号文章;另一方面,微信的反爬机制堪称全网最严苛之一 ——腾讯对微信生态的风控做到了极致,动态渲染页面、高频IP封禁、Cookie短时效失效、请求头严格校验、自动化工具秒识别、频繁请求直接拉黑,这些反爬手段让90%的爬虫新手望而却步:要么爬了几篇就被封IP,要么Cookie失效爬取中

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2626

汽车UDS诊断详解及Vector相关工具链使用说明——总述

1.什么是诊断 车辆在运行过程中,不可避免地会发生一些故障,为了确保行车安全,我们要求车上的ECU能够实时监测部件的运行状态,一旦发现异常情况,能通过点亮报警灯等方式提示驾驶员。但是,点亮报警灯只能告诉驾驶员车辆发生了故障,最多只能定位到故障ECU,比如ABS报警灯亮说明ABS系统出现故障,但具体是什么部件发生故障并不能通过报警灯显示出来。这时就需要ECU在本地存储一个与故障相对应的故障代码,在进行维修的时候,可以通过车上的OBD接口连接诊断仪,把这个存储的故障代码读取出来,从而进一步定位到更加具体的故障部

weixin_42967006的博客 2万+

linux shell 编程之变量总结

shell 编程之变量总结

congge_study的博客 4407

诊断CAPL自动化(3)——封装了接收诊断数据的通用CAPL脚本函数库

DiagGetRespPrimitiveSize (获取诊断响应的单个数据) diagGetPrimitiveData (获取诊断返回的所有数据) DiagGetRespParameter(数值类型) DiagGetRespParameter(字符串类型) DiagGetRespParameter(byte数组)

蚂蚁小兵 6219

Shell学习——shell中的变量

号两边不能有空格,有的话要用引号引起来my varexit使用export可以将局部变量升级为全局变量my var但是,在子shell里面的变量修改不会改变外层父shell的值,如your varexitmy var。

m0_73716246的博客 1126

Mysql授权允许远程访问

前言 Mysql授权允许远程登录后,linux中安装的mysql可以与Navicat for Mysql(可视化)等连接,在可视化软件下管理数据库。 注意:不能使用临时密码 设置密码命令: alter user 'root'@'localhost' identified by '这里是你的密码'; 授权允许远程访问 一、授权命令: grant all privileges on *.* to '...

🏆 前端领域优质创作者 3万+

YOLOv11改进 | 引入DEConv细节增强卷积模块:恢复细节信息,提升小目标检测精度

摘要: YOLOv11在目标检测中面临小目标检测精度不足的问题,主要由于细节信息丢失。本文提出引入DEConv(细节增强卷积)模块,通过多分支卷积和残差连接恢复高频细节,提升小目标检测性能。DEConv结合3×3卷积与空洞卷积增强边缘信息,并自适应融合特征,兼容YOLOv11的P3层(小目标关键层)且计算高效。实验表明,该改进在无人机航拍、显微镜图像等密集小目标场景中显著减少漏检,同时保持轻量化和实时性优势。代码实现可直接嵌入现有YOLO架构,仅需替换P3层卷积模块。

走向CTO的路上... 948

Shell脚本 —— Shell 变量

在Shell脚本中,变量是存储数据的基本单元,它们可以包含字符串、数字等,并在脚本中被引用和操作。

Darrich的博客 1495

YOLOv8首发优化:遥感目标检测 | 专为低质量遥感图像设计的边缘 - 高斯聚合(EGA)模块,解决低空间分辨率、传感器噪声、目标模糊、低光照退化和部分遮挡等限制

一种轻量级网络,其创新性地整合了专为低质量遥感图像设计的边缘 - 高斯聚合(EGA)模块。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 492

Shell学习——Shell变量

在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。数组名=(值1 值2 ... 值n)

xd__xy的博客 1427

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

shell--2--shell变量 定义变量 使用变量 只读变量 删除变量 变量类型 Shell字符串 shell函数

Shell变量 @1变量即在程序运行过程中它的值是允许改变的量 @2变量是用一串固定的字符来表示不固定的值的一种方法 @3变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息 @4在shell中变量是不能永久保存在系统中的,必须在文件中声明 定义变量 变量名不加$,如: Name=”rnunoob.com” 注意,变量名和等号之间不能...

weixin_40460156的博客 655

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

shell变量及赋值

1、变量的定义Bash中的变量操作相对比较简单,不像其他高级编程语言(如C/C++、Java等)那么复杂。在定义一个新的变量时,一般不需要提前进行声明,而是直接指定变量名称并赋给初始值(内容)即可格式:变量名=变量值变量名:临时存放数据的地方变量值:临时的可变化的数据等号两边没有空格。变量名称需以字母或下划线开头,名称中不要包含特殊字符(如+、-、*、/、.、?、%、&、#等)除了上述赋值操作以外,还可以使用 Bash 的内置命令 read 来给变量赋值。

2201_75549363的博客 2376

四种shell变量

shell的四种变量: 本地变量,环境变量,两种特殊变量(只读变量)   一、本地变量 设置本地变量: variable-name = value ${variable-name=value} 注:等号两边应该有空格 variable-name=value                       设置实际值到variable-name

追逐卓越 3661

shell-变量

当前用户进入shell环境初始化时会加载全局配置文件/etc/profile里面的环境变量,供给shell使用用户进入linux系统就会初始化shell环境。这个环境会加载全局配置文件和用户个人配置文件中环境变量,每个脚本文件都有自己的shell环境在执行一个脚本文件时可以指定具体shell环境进行执行脚本文件,这个就是切换shell环境执行脚本单引号,不会解析里面的变量不使用引号,也会解析,但不可以含有空格,空格后面的字符串会作为命令去执行双引号可以解析变量,还可以出现双引号的子字符串,但需要转义。

2301_81890990的博客 719

Shell编程概述与Shell变量

*传递给脚本或函数的所有参数,以单一字符串的形式返回,多个参数之间用空格分隔$@传递给脚本或函数的所有参数,以字符串的形式返回,每个参数是独立的上一条命令的退出状态(返回值),0:执行正确,非0:执行异常$#命令行中位置参数的总数量$0脚本的名称或程序的名称$$当前脚本的进程 ID(PID)后台任务最后一个ID(PID)

weixin_43099162的博客 925
上一篇: Language Environment
下一篇: 重复执行以前输入命令的快捷方法
Mainframer
博客等级 码龄19年 7粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值