Shell中参数替换操作

参数替换操作

描述

示例

${var:-value}

如果变量未定义或为空,则使用默认值value

var=""; echo "${var:-default}" 输出:default

${var:=value}

如果变量未定义或为空,则设置变量的值为默认值。

var=""; echo "${var:=default}"; echo "$var" 输出:default

${var:+value}

如果变量已定义且非空,则使用指定值。

var="value"; echo "${var:+default}" 输出:default

${var:?message}

如果变量未定义或为空,则输出错误消息。

var=""; echo "${var:?Variable is not defined}" 输出:Variable is not defined

${var#pattern}

删除变量的前缀匹配的最短模式。

例如${var#*.},用于删除变量 var 中第一个.字符及其左边的所有字符,并返回剩余的字符串。

假设有一个变量 var,其值为 file.txt,想要删除第一个. 及其左边的所有字符,得到后缀为 txt 的文件名:

var="file.txt"

result=${var#*.}echo "Result: $result"

输出:

Result: txt

${var##pattern}

删除变量的前缀匹配的最长模式。

例如:${var##*.},用于删除变量 var 中最后一个.字符及其左边的所有字符,并返回剩余的字符串。

假设有一个变量 var,其值为 file.tar.gz,我们想要删除最后一个 . 及其左边的所有字符,得到文件的最终扩展名 gz:

var="file.tar.gz"

result=${var##*.}

echo "Result: $result"

输出:

Result: gz

${var%pattern}

删除变量的后缀匹配的最短模式。

例如:${var%*.} ,用于删除变量 var 中最后一个.字符及其右边的所有字符,并返回剩余的字符串。

假设有一个变量 var,其值为 file.tar.gz,我们想要删除最后一个 . 及其右边的所有字符,得到文件名 file.tar:

var="file.tar.gz"

result=${var%*.}

echo "Result: $result"

输出:

Result: file.tar

${var%%pattern}

删除变量的后缀匹配的最长模式。

例如:${var%%*.} 用于删除变量 var 中所有.字符及其右边的所有字符,并返回剩余的字符串。

假设有一个变量 var,其值为 file.tar.gz,我们想要删除所有的 . 及其右边的字符,得到文件名的前缀 file:

var="file.tar.gz"

result=${var%%.*}

echo "Result: $result"

输出:

Result: file

${var/pattern/replacement}

替换变量中首次出现的模式。

var="apple"; echo "${var/a/o}" 输出:opple

${var//pattern/replacement}

替换变量中所有匹配的模式。

var="apple"; echo "${var/p/o}" 输出:aoole

${var/#pattern/replacement}

如果变量的值以模式开头,则替换为指定值。

var="apple"; echo "${var/#ap/aa}" 输出:aaple

${var/%pattern/replacement}

如果变量的值以模式结尾,则替换为指定值。

var="apple"; echo "${var/%le/ll}" 输出:appll

${#var}

获取变量值长度

length=${#var}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值