返回顶部
首页 > 资讯 > 服务器 >Shell中的${}、##和%%使用范例
  • 794
分享到

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

范例Shell 2022-06-04 21:06:00 794人浏览 独家记忆
摘要

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

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

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

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]

--结束END--

本文标题: Shell中的${}、##和%%使用范例

本文链接: https://lsjlt.com/news/18487.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Shell中的${}、##和%%使用范例
    今天看一个脚本文件的时候有一些地方不太懂,找了一篇文章看了一些,觉得不错,保留下来。 假设我们定义了一个变量为: file=/dir1/dir2/dir3/my.file.txt 可以用${ }分别...
    99+
    2022-06-04
    范例 Shell
  • linux shell中pushd、popd和dirs的使用示例
    这篇文章将为大家详细讲解有关linux shell中pushd、popd和dirs的使用示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 问题我们有时候需要保存多个路径,上下键切换不方便,用...
    99+
    2023-06-09
  • 使用QAbstractTableModel的简单范例
    下面是一个使用QAbstractTableModel的简单范例:```pythonfrom PyQt5.QtCore import ...
    99+
    2023-09-13
    使用
  • 如何使用Shell中的${}、##和%%
    这篇文章主要介绍“如何使用Shell中的${}、##和%%”,在日常操作中,相信很多人在如何使用Shell中的${}、##和%%问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Shell中的${}、##...
    99+
    2023-06-09
  • PSR2和PSR4规范在Phalcon框架中的示例演示和使用指南
    引言:随着开源软件的普及和发展,代码规范化已经成为一个非常重要的话题。代码规范可以提高代码的可读性和可维护性,让团队成员更容易合作。PHP-FIG制定了一系列的PSR(PHP Standards Recommendations)规范,其中最...
    99+
    2023-10-21
    Phalcon框架 PSR规范
  • Linux Shell中curl和wget使用代理IP的示例分析
    小编给大家分享一下Linux Shell中curl和wget使用代理IP的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!curl 和 wget 使用代理c...
    99+
    2023-06-09
  • linux下tar命令的使用范例
    这篇文章主要介绍“linux下tar命令的使用范例”,在日常操作中,相信很多人在linux下tar命令的使用范例问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下tar命令的使用范例”的疑惑有所帮助!...
    99+
    2023-06-13
  • SpringBoot使用Swagger范例讲解
    目录1. Swagger 介绍2. 使用Swagger接口文档框架1. Swagger 介绍 在一个项目开发过程中,当前端开发人员根据后端开发人员给出的 API 接口文档进行接口联调...
    99+
    2024-04-02
  • Shell中set与shopt命令选项的含义和使用示例
    前言 本文主要给大家介绍了关于Shell中set与shopt命令选项含义与使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 set命令选项 set命令作用主要是显示系统中已经...
    99+
    2022-06-04
    示例 含义 选项
  • linux中Shell有哪些使用示例
    小编给大家分享一下linux中Shell有哪些使用示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的...
    99+
    2023-06-15
  • shell中if和else的示例分析
    这篇文章主要为大家展示了“shell中if和else的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“shell中if和else的示例分析”这篇文章吧。基本语法shell的if语法和C语言...
    99+
    2023-06-09
  • Shell中eval的用法示例
    功能说明:告知shell取出eval的参数,重新运算求出参数的内容。 语  法:eval [参数] 补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。 参  数:参数不限数目,彼此之间用分...
    99+
    2022-06-04
    示例 Shell eval
  • Bash Shell中的select命令简单使用示例
    前言 今天刚好写了一个自动化打包脚本,再次使用到了bash shell,好幸福的感觉。这里主要是想介绍一下select命令,这个命令可以帮助我们完成菜单选择功能。 格式 我今天也是第一次使用select流程...
    99+
    2022-06-04
    示例 命令 简单
  • Shell脚本中使用function(函数)示例
    函数可以在shell script当中做一个类似自定义执行命令,最大的功能就是可以简化我们很多的程序代码。需要注意的是shell script的执行方式是由上而下/由左而右,因此在shellscript当中...
    99+
    2022-06-04
    示例 脚本 函数
  • 详解shell脚本中的case条件语句介绍和使用案例
    #前言:这篇我们接着写shell的另外一个条件语句case,上篇讲解了if条件语句。case条件语句我们常用于实现系统服务启动脚本等场景,case条件语句也相当于if条件语句多分支结构,多个选择,case看起来更规范和易...
    99+
    2022-06-04
    shell case条件语句 shell case
  • Shell脚本test命令使用总结和实例
    Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。 数值测试 参数 说明 -eq ...
    99+
    2022-06-04
    脚本 实例 命令
  • MyBatisXPathParser解析器使用范例详解
    MyBatis是优秀的开源数据库框架,本菜鸟抱着学习的态度,通过《MyBatis技术内幕》一书来进行MyBatis 的学习。 MyBatis 的基础支撑层使用XPathParser来...
    99+
    2024-04-02
  • shell下获取上一个月,星期时间和时间戳的范围实例
    如下所示: #!/bin/bash #一月前 historyTime=$(date "+%Y-%mGqbmK-%d %H" -d '1 month ago') echo ${historyTime} historyT...
    99+
    2022-06-04
    shell 时间戳
  • Shell中的while循环几种使用实例详解
    1.利用while循环计算1到100的和: 示例代码1: #!/bin/bash i=1 sum=0 while [ $i -le 100 ] do let sum=sum+$i let i++ done ech...
    99+
    2022-06-04
    shell中while循环 shell中while循环的使用 shell中的while循环几种使用实例详解
  • JSP中对象和范围属性的示例分析
    小编给大家分享一下JSP中对象和范围属性的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JSP技术使用Java编程语言编写类XML的tags和script...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作