假设我们定义了一个变量为: 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 为空值,则使用 my.file.txt 作默认值。(保留没设定及非空值) ${file:-my.file.txt} :假如 $file 没有设定或为空值,则使用 my.file.txt 作默认值。 (保留非空值) ${file+my.file.txt} :不管 $file 为何值,均使用 my.file.txt 作默认值。 (不保留任何值) ${file:+my.file.txt} :除非 $file 为空值,否则使用 my.file.txt 作默认值。 (保留空值) ${file=my.file.txt} :若 $file 没设定,则使用 my.file.txt 作默认值,同时将 $file 定义为非空值。 (保留空值及非空值) ${file:=my.file.txt} :若 $file 没设定或为空值,则使用 my.file.txt 作默认值,同时将 $file 定义为非空值。 (保留非空值) ${file?my.file.txt} :若 $file 没设定,则将 my.file.txt 输出至 STDERR。 (保留空值及非空值)) ${file:?my.file.txt} :若 $file 没设定或为空值,则将 my.file.txt 输出至 STDERR。 (保留非空值) 还有,${#var} 可计算出变量值的长度: ${#file} 可得到 27 ,因为 /dir1/dir2/dir3/my.file.txt 刚好是 27 个字节...
相关推荐
本文将深入探讨Shell如何进行字符串操作,特别是变量替换、变量扩充、变量中的变量以及变量的特异功能,帮助读者更熟练地掌握Shell编程技巧。 #### 变量替换:简单赋值与替换 在Shell中,可以使用`=`运算符为变量...
本研究中,研究人员采用了量子力学方法(QM)来筛选与葛根素能够发生相互作用的三种常见功能性单体,并预测了最佳功能性单体(丙烯酰胺,AA)及其相对于模板分子的比例(PR/AA, 1:4)。 通过对获得的葛根素分子印迹...
RNA编辑是一种后转录修饰过程,它通过改变RNA分子中的单个核苷酸来增加遗传多样性,这在生物学中起着关键作用。标题提到的"rna-editing-classifier"是一个工具,专门设计用于从RNA-seq(RNA测序)数据中识别和分类A...
在这个教程中,你将了解到如何在Proteus的shell环境中操作BLAST,以及如何利用git进行版本控制。 1. **BLAST简介**:BLAST的核心功能是快速查找数据库中与给定查询序列高度相似的序列。它基于Smith-Waterman算法的...
在ATAC-Seq数据处理中,以下是一些关键步骤和相关知识点: 1. **质量控制**:首先,需要对原始测序数据进行质量检查,这通常使用FastQC工具进行。FastQC可以报告每个测序读的多种质量指标,如平均质量得分、基序...
在提供的标签中,"bioinformatics-pipeline"表示这是一个生物信息学的流程,"cutrun"指的是CUT-RUN技术,而"Shell"暗示该管道可能是用Shell脚本实现的,这通常用于自动化和整合多个命令行工具。 文件"CUT-RUN-main...
SERS技术的应用非常广泛,特别是在化学和生物分子的传感与鉴别中,因其高灵敏度和特异性而备受欢迎。 4. 3D SERS基底(3D SERS Substrate): 本文提出的3D SERS基底是由具有特殊纳米级结构的微/纳结构构成,这种...