小c学Linux(18)--bash脚本变量大全

本文深入解析Bash脚本中各种变量的应用,包括内置变量、特殊变量及其操作方式,旨在提升读者处理文本数据、字符串和逻辑控制的能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BASH

在写脚本时,需要用到很多变量,bash的内置变量,自定义变量,特殊变量,变量值若为字符串,直接在脚本处理等等。

写脚本的能力突出在四方面:

  1. 字符串处理的能力
  2. 运用工具处理文本数据的能力:sed awk….
  3. 特殊变量使用的能力
  4. 逻辑能力

内置变量:全大写

变量名解释
PATH系统环境变量
HOSTNAME系统主机名
UID当前用户ID
HISTFILEhistory存储文件位置
HISTFILESIZEhistory文件大小
HISTCONTROLhistory控制类型
$BASHbash二进制程序文件的路径
$BASH_SUBSHELL子shell的层次
$BASH_VERSIONbash版本
$EDITOR默认编辑器
$EUID有效的用户ID
$UID当前用户的ID号
$FUNCNAME当前函数的名称
$GROUPS当前用户显示的组
$HOME当前用户的家目录
$HOSTTYPE主机架构类型,用来识别系统硬件
$MACHTYPE平台类型,系统平台依赖的编译平台
$OSTYPEOS系统类型
$IFS输入数据时的字段分隔符,默认是空白符(空格、制表符、换行符)
$OLDPWD上次使用的目录
$PWD当前目录
$PPID父进程
$PS1主提示符
$PS2第二提示符,主要用于补充完全命令输入时的提示符
$PS3第三提示符,用于select命令中
$PS4第四提示符,当使用-X选项调用脚本时,显示的提示符,默认为+号
$SECONDS当前脚本已经运行的时长
$SHLVLshell的级别。bash别嵌入的深度

2、特殊变量:

变量名解释
$0脚本名称自身
$1,$2…位置参数
$#命令行参数个数
$*所有的参数,被当作一个字符串
$@所有的参数,每个参数都是一个独立的字符串
$-传递给脚本的标记
$!运行于后台的最后一个作业的PID
$_上一条命令的最后一个参数的值
$?上一条命令状态的返回值
$$脚本自身的PID

操作变量:

变量名解释
${#var}返回变量中字符串的长度
${var}变量引用
${var:-default}如果var没有声明或者为空,则返回default字串,否则返回var自身的值
${var:+default}如果var没有声明或者为空,则返回空字串,否则返回default的值
${var:=default}如果var没有声明或者为空,则返回default字串,并且将default赋值给var,否则返回var自身的值
${var:?default}如果var没有声明或者为空,则以default为错误信息返回,否则var自身的值

变量为字符串的

变量名解释
删除子串
${var#*word}查找var中自左而右第一个被word匹配到的串,并将此串及向左的所有内容都删除
${var#*word}查找var中自左而右最后一次被word匹配到的串,并将此串及向左的所有内容都删除
${var%word*}查找var中自右而左第一个被word匹配到的串,并将此串及向右的所有内容都删除
${var%%word*}查找var中自右而左最后一次被word匹配到的串,并将此串及向右的所有内容都删除
取子串
${var:pos}偏移pos个字符,取余下的字串
${var:pos:num}偏移pos个字符,取num个字符长度的字串
字串替换
${var/Pattern/Replaceplacement}以Pattern为模式匹配var中的字串,将第一次匹配到的替换为Replaceplacement
${var// Pattern/Replaceplacement}以Pattern为模式匹配var中的字串,将全部匹配到的替换为Replaceplacement6

声明变量:

declare
-i整形
-a数值
-x环境变量
-r只读变量,不能撤销,不能修改,相当于readonly
-f声明函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值