我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Shell中的${}、##和%%使用范例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Shell中的${}、##和%%使用范例

今天看一个脚本文件的时候有一些地方不太懂,找了一篇文章看了一些,觉得不错,保留下来。

假设我们定义了一个变量为:

file=/dir1/dir2/dir3/my.file.txt

可以用${ }分别替换得到不同的值:
${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt

${file##*/}:删掉最后一个 /  及其左边的字符串:my.file.txt

${file#*.}:删掉第一个 .  及其左边的字符串:file.txt

${file##*.}:删掉最后一个 .  及其左边的字符串:txt

${file%/*}:删掉最后一个  /  及其右边的字符串:/dir1/dir2/dir3

${file%%/*}:删掉第一个 /  及其右边的字符串:(空值)

${file%.*}:删掉最后一个  .  及其右边的字符串:/dir1/dir2/dir3/my.file

${file%%.*}:删掉第一个  .   及其右边的字符串:/dir1/dir2/dir3/my

记忆的方法为:
# 是 去掉左边(键盘上#在 $ 的左边)

%是去掉右边(键盘上% 在$ 的右边)

单一符号是最小匹配;两个符号是最大匹配

${file:0:5}:提取最左边的 5 个字节:/dir1

${file:5:5}:提取第 5 个字节右边的连续5个字节:/dir2

也可以对变量值里的字符串作替换:
${file/dir/path}:将第一个dir 替换为path:/path1/dir2/dir3/my.file.txt

${file//dir/path}:将全部dir 替换为 path:/path1/path2/path3/my.file.txt

利用 ${ } 还可针对不同的变数状态赋值(?]设定、空值、非空值):

${file-my.file.txt} :假如 $file ?]有设定,?t使用 my.file.txt 作传回值。(空值及非空值?r不作处理)
${file:-my.file.txt} :假如 $file ?]有?定或?榭罩担?t使用 my.file.txt 作?骰刂怠 (非空值?r不作处理)
${file+my.file.txt} :假如 $file ??榭罩祷蚍强罩担??褂 my.file.txt 作?骰刂怠??]?定?r不作处理)
${file:+my.file.txt} :若 $file ?榉强罩担?t使用 my.file.txt 作?骰刂怠 (?]?定及空值?r不作处理)
${file=my.file.txt} :若 $file ?]?定,?t使用 my.file.txt 作?骰刂担??r? $file ?值? my.file.txt 。 (空值及非空值?r不作处理)
${file:=my.file.txt} :若 $file ?]?定或?榭罩担?t使用 my.file.txt 作?骰刂担??r? $file ?值??y.file.txt 。 (非空值?r不作处理)
${file?my.file.txt} :若 $file ?]?定,?t? my.file.txt ?出至 STDERR。 (空值及非空值?r不作处理)

${file:?my.file.txt} :若 $file 没设定或为空值,则将 my.file.txt 输出至 STDERR。 (非空值?r不作处理)
${#var} 可计算出变量值的长度:

${#file} 可得到 27 ,因为/dir1/dir2/dir3/my.file.txt 是27个字节
[/code]

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Shell中的${}、##和%%使用范例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Shell中的${}、##和%%使用范例

今天看一个脚本文件的时候有一些地方不太懂,找了一篇文章看了一些,觉得不错,保留下来。假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt可以用${ }分别替换得到不同的值:${file#*/}:删掉第一
2022-06-04

linux shell中pushd、popd和dirs的使用示例

这篇文章将为大家详细讲解有关linux shell中pushd、popd和dirs的使用示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 问题我们有时候需要保存多个路径,上下键切换不方便,用cd-只能
2023-06-09

如何使用Shell中的${}、##和%%

这篇文章主要介绍“如何使用Shell中的${}、##和%%”,在日常操作中,相信很多人在如何使用Shell中的${}、##和%%问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Shell中的${}、##
2023-06-09

使用QAbstractTableModel的简单范例

下面是一个使用QAbstractTableModel的简单范例:```pythonfrom PyQt5.QtCore import QAbstractTableModel, Qtclass MyTableModel(QAbstractTab
2023-09-13

PSR2和PSR4规范在Phalcon框架中的示例演示和使用指南

引言:随着开源软件的普及和发展,代码规范化已经成为一个非常重要的话题。代码规范可以提高代码的可读性和可维护性,让团队成员更容易合作。PHP-FIG制定了一系列的PSR(PHP Standards Recommendations)规范,其中最
2023-10-21

Linux Shell中curl和wget使用代理IP的示例分析

小编给大家分享一下Linux Shell中curl和wget使用代理IP的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!curl 和 wget 使用代理c
2023-06-09

Shell中set与shopt命令选项的含义和使用示例

前言 本文主要给大家介绍了关于Shell中set与shopt命令选项含义与使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 set命令选项 set命令作用主要是显示系统中已经存在的shell变量,以及设置sh
2022-06-04

linux下tar命令的使用范例

这篇文章主要介绍“linux下tar命令的使用范例”,在日常操作中,相信很多人在linux下tar命令的使用范例问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下tar命令的使用范例”的疑惑有所帮助!
2023-06-13

linux中Shell有哪些使用示例

小编给大家分享一下linux中Shell有哪些使用示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的
2023-06-15

shell中if和else的示例分析

这篇文章主要为大家展示了“shell中if和else的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“shell中if和else的示例分析”这篇文章吧。基本语法shell的if语法和C语言
2023-06-09

Bash Shell中的select命令简单使用示例

前言 今天刚好写了一个自动化打包脚本,再次使用到了bash shell,好幸福的感觉。这里主要是想介绍一下select命令,这个命令可以帮助我们完成菜单选择功能。 格式 我今天也是第一次使用select流程控制,在php、Java、C这些语
2022-06-04

Shell脚本中使用function(函数)示例

函数可以在shell script当中做一个类似自定义执行命令,最大的功能就是可以简化我们很多的程序代码。需要注意的是shell script的执行方式是由上而下/由左而右,因此在shellscript当中的function的设置一定要在程
2022-06-04

Shell中eval的用法示例

功能说明:告知shell取出eval的参数,重新运算求出参数的内容。 语  法:eval [参数] 补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。 参  数:参数不限数目,彼此之间用分号分开。 1.执行命令行之前扫描它
2022-06-04

详解shell脚本中的case条件语句介绍和使用案例

#前言:这篇我们接着写shell的另外一个条件语句case,上篇讲解了if条件语句。case条件语句我们常用于实现系统服务启动脚本等场景,case条件语句也相当于if条件语句多分支结构,多个选择,case看起来更规范和易读 #case条件语
2022-06-04

Shell脚本test命令使用总结和实例

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。 数值测试参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则为真-le小于等于则为真例如:num1=1
2022-06-04

Shell中的while循环几种使用实例详解

1.利用while循环计算1到100的和: 示例代码1:#!/bin/bash i=1 sum=0 while [ $i -le 100 ] dolet sum=sum+$ilet i++ done echo $sum示例代码2:利用whi
2022-06-04

shell下获取上一个月,星期时间和时间戳的范围实例

如下所示:#!/bin/bash #一月前 historyTime=$(date "+%Y-%mGqbmK-%d %H" -d '1 month ago') echo ${historyTime} history
2022-06-04

编程热搜

目录