`
音频数据
  • 浏览: 36933 次
文章分类
社区版块
存档分类
最新评论

linux变量内容的删除与替代${}

 
阅读更多
bash 对${}定义了不少用法。对变量的操作及判断是一个十分有用的工具,应好好学习一下,以下是说明的表列

变量的删除

${parameter#word}

${parameter##word}

${parameter%word}

${parameter%%word}

变量的提取

${parameter:offset}

${parameter:offset:length}

变量的替换

${parameter/pattern/string}

${parameter//pattern/string}

变量的删除、提取、替换

[root@awake ~]# file=/dir1/dir2/dir3/my.file.txt  //定义一个变量

[root@awake ~]# echo $file                        //显示定义的变量

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

[root@awake ~]# echo ${file#*/}                   //删除/和/左边的字符串,最短匹配的

dir1/dir2/dir3/my.file.txt

[root@awake ~]# echo ${file##*/}                  //删除/和/左边的字符串,最长匹配的

my.file.txt

[root@awake ~]# echo ${file%/*}                   //删除/和右边的字符串,最短匹配

/dir1/dir2/dir3

[root@awake ~]# echo ${file%%/*}                  //删除/和右边的字符串,最长匹配,全部删除完了,因此为空置



[root@awake ~]# echo ${file:5}

/dir2/dir3/my.file.txt                            //提取                  这个不知如何解释,没查到

[root@awake ~]# echo ${file:0:5}                  //提取第5个字节左边的5个 这个不知如何解释,没查到

/dir1

[root@awake ~]# echo ${file:5:6}                  //提取第5个字节的右边6个字节

/dir2/

[root@awake ~]# echo ${file/dir/path}             //用path替换最左边的dir,其中/应该是参考符,如果没有/的变量内容应该如何替换?

/path1/dir2/dir3/my.file.txt

[root@awake ~]# echo ${file//dir/path}            //用path替换全部的dir

/path1/path2/path3/my.file.txt

[root@awake ~]#

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

${parameter-word}

${parameter:-word}

${parameter:=word}

${parameter:?word} 当parameter指示的参数没有被设值的时候,将会通过标准错误的方式显示word中的语句。

${parameter:+word}

${!prefix*}

${#parameter}

${#var} 可计算出变量值的长度:

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

如果old变量为未设定或叫不存在,那么将new=content

[root@awake ~]# unset new old

[root@awake ~]# echo ${old-content}

content

[root@awake ~]# new=${old-content}

[root@awake ~]# echo new=$new,old=$old

new=content,old=

如果old变量为空字符串,那么将new=空

[root@awake ~]# unset old new

[root@awake ~]# old=""

[root@awake ~]# new=${old-content}

[root@awake ~]# echo new=$new,old=$old

new=,old=

[root@awake ~]#

如果old变量为非空字符串,那么new=$old

[root@awake ~]# unset old new

[root@awake ~]# old=old

[root@awake ~]# new=${old-content}

[root@awake ~]# echo new=$new,old=$old

new=old,old=old

[root@awake ~]#

总结及其他字符整理

变量设置方式 old没有设置 old为空字符串 old已设置为非空字符串

new=${old-content} new=content new= new=$old

new=${old:-content} new=content new=content new=$old

new=${old+content} new= new=content new=content

new=${old:+content} new= new= new=content

new=${old=content} old=content

new=content old不变

new= old不变

new=$old

new=${old:=}

old=content

new=content

old=content

new=content

old不变

new=$old

new=${old?content}

content输出至stderr new= var=$str

new=${old:?content}

content输出至stderr content输出至stderr var=$str
分享到:
评论

相关推荐

    Linux服务器rm命令替换

    在Linux操作系统中,`rm`命令是用于删除文件或目录的基本工具。然而,由于`rm`命令一旦执行就无法撤销,对于重要的数据误删可能会带来严重后果。因此,有时我们可能需要替换`rm`命令,以增加额外的安全层或者提供...

    linux shell脚本知识汇总

    - **Shell**:Linux系统的命令解释器,用户通过Shell与操作系统进行交互,执行各种命令。 - **脚本**:由Shell语言编写的文本文件,包含了可执行的命令序列,能够自动完成特定任务。 2. **重定向符号的使用** - ...

    linux资源 课件 课程

    比如`ls`用于列出目录内容,`cd`用来切换目录,`mkdir`创建新目录,`rm`删除文件或目录,`cp`和`mv`分别用于复制和移动文件与目录。理解这些基本命令的用法,是Linux操作的基础。 文件管理是Linux系统中的核心部分...

    linux 初级学习资料集

    它由Linus Torvalds于1991年创建,旨在提供一个免费且可定制的替代品,与传统的封闭源代码操作系统如Microsoft Windows形成对比。 在Linux系统中,用户界面可以是命令行界面(CLI)或图形化用户界面(GUI)。对于...

    Linux基础操作.zip_Linux基础操作_linux 基础_linux操作系统

    在IT领域,Linux操作系统是不可或缺的一部分,尤其对于服务器管理和软件开发人员来说,掌握Linux基础操作至关重要。本资料“Linux基础操作.zip”包含了关于Linux系统基本操作的指导,旨在帮助初学者快速入门。以下是...

    linux 复习资料 (考试专用)

    本复习资料详细梳理了Linux的关键知识点,已经由班级内的高手们全面审核过,确保内容准确无误。 1. **Linux基础知识**: - Linux是一个开源的操作系统,基于Unix,由林纳斯·托瓦兹开发。 - Linux内核管理硬件...

    linux相关资料集锦

    Linux系统提供强大的网络管理工具,如`ifconfig`(查看或配置网络接口)、`ping`(检查网络连接)、`netstat`(查看网络状态)和`ss`(替代netstat的现代工具)。此外,`iptables`用于防火墙规则设置,`ssh`实现安全...

    linux自动备份sh脚本

    在Linux系统中,编写自动化备份脚本是一种常见且重要的任务,尤其对于...以上就是关于“linux自动备份sh脚本”的核心内容,通过这样的脚本,我们可以实现自动化、高效的数据备份策略,为Linux系统的数据安全提供保障。

    linux系统下的特别编程

    通过对Linux系统的基本命令、启动过程、环境变量设置等方面的介绍,我们可以看出Linux作为一种强大且灵活的操作系统,在嵌入式开发领域具有不可替代的地位。对于希望从事嵌入式Linux开发的人来说,掌握Linux的基础...

    mysql-8.0.33-linux-glibc2.12-x86-64.tar.xz

    centos或linux系统中使用的源码安装包,亲测有效。 MySQL 8.0.33于2023年4月18日GA,这可能是包含新功能、新特性的8.0的最后一个版本,未来的MySQL版本将会在发行方式上发生重大改变。 MySQL 企业版审计功能使用...

    2本linux shell 编程chm

    Linux Shell编程是Linux系统管理与自动化任务的核心技术之一,它主要指的是使用Shell脚本来执行一系列命令,实现自动化操作。在Linux环境中,Bash(Bourne-Again SHell)是最常用的Shell,也是许多Linux发行版的默认...

    LINUX与UNIX SHELL编程指南 上

    6. **文件与目录操作**:Shell提供了丰富的命令用于操作文件和目录,如`cd`改变当前目录,`ls`列出目录内容,`mkdir`创建目录,`touch`创建或修改文件时间戳,`cp`和`mv`进行文件复制和移动,`rm`删除文件或目录。...

    linux and unix shell

    3. **文件操作**:通过Shell,用户可以轻松地进行文件的复制、移动、重命名和删除,以及进行文件内容的搜索和替换。 4. **管道(Pipe)**:使用管道符号`|`,可以将一个命令的输出作为另一个命令的输入,实现命令间...

    在Linux系统中在Linux系统中

    `cd`用于切换目录,`ls`用于列出目录内容,`mkdir`创建新目录,`rm`删除文件或目录,`cp`和`mv`用于复制和移动文件。理解权限模式(如rwx)和通配符(如*和?)也是基础操作的一部分。 2. **文本编辑器**:`vi`或`...

    维护常用linux命令\shell技巧

    - 变量声明与赋值。 - 条件语句(`if...fi`)和循环语句(`for`, `while`)。 - 函数定义与调用。 - 输入/输出重定向(`, `>`, `>>`)。 - 调用外部命令(如`$()`或`` ` ``)。 - 错误处理与调试(`set -e`, `...

    Linux基础教程和高级编程完整课件

    你会学习基本的命令行操作,如`ls`(列出目录内容)、`cd`(改变目录)、`mkdir`(创建目录)和`rm`(删除文件或目录)。此外,还将介绍文件权限和所有权的概念,这对于管理文件和目录至关重要。 在shell编程方面,...

Global site tag (gtag.js) - Google Analytics