Linux变量内容的删除、代替与替换
变量内容的删除与代替
范例一:先让小写的 path 自己定义变量配置的与 PATH 内容同样 |
${variable#/*kerberos/bin:}
|
范例三:我想要删除前面全部的文件夹,仅保留最后一个文件夹 |
由于在 PATH 这个变量的内容中。每一个文件夹都是以冒号『:』隔开的, 所以要从头删除掉文件夹就是介于斜线 (/) 到冒号 (:) 之间的数据。可是 PATH 中不止一个冒号 (:) 啊。 所以 # 与 ## 就分别代表:
# :符合代替文字的『最短的』那一个;
##:符合代替文字的『最长的』那一个
范例四:我想要删除最后面那个文件夹,亦即从 : 到 bin 为止的字符串 |
范例六:将 path 的变量内容内的 sbin 代替成大写 SBIN: |
总结
| 变量配置方式 | 说明 |
| ${变量#关键词} ${变量##关键词} |
若变量内容从头開始的数据符合『关键词』,则将符合的最短数据删除 若变量内容从头開始的数据符合『关键词』,则将符合的最长数据删除 |
| ${变量%关键词} ${变量%%关键词} |
若变量内容从尾向前的数据符合『关键词』,则将符合的最短数据删除 若变量内容从尾向前的数据符合『关键词』。则将符合的最长数据删除 |
| ${变量/旧字符串/新字符串} ${变量//旧字符串/新字符串} |
若变量内容符合『旧字符串』则『第一个旧字符串会被新字符串代替』 若变量内容符合『旧字符串』则『所有的旧字符串会被新字符串代替』 |
变量的測试与内容替换
在某些时刻我们经常须要『推断』某个变量是否存在,若变量存在则使用既有的配置,若变量不存在则给予一个经常使用的配置。
范例一:測试一下是否存在 username 这个变量。若不存在则给予 username 内容为 root |
new_var=${old_var-content}
|
范例二:若 username 未配置或为空字符串。则将 username 内容配置为 root |
在大括号内有没有冒号『 : 』的区别是非常大的!加上冒号后,被測试的变量未被配置或者是已被配置为空字符串时, 都可以用后面的内容 (本例中是使用 root 为内容) 来替换与配置!
这样可以了解了吗?除了这种測试之外, 还有其它的測试方法。
| 变量配置方式 | str 没有配置 | str 为空字符串 | str 已配置非为空字符串 |
| var=${str-expr} | var=expr | var= | var=$str |
| var=${str:-expr} | var=expr | var=expr | var=$str |
| var=${str+expr} | var= | var=expr | var=expr |
| var=${str:+expr} | var= | var= | var=expr |
| var=${str=expr} | str=expr var=expr |
str 不变 var= |
str 不变 var=$str |
| var=${str:=expr} | str=expr var=expr |
str=expr var=expr |
str 不变 var=$str |
| var=${str?expr} | expr 输出至 stderr | var= | var=$str |
| var=${str:?expr} | expr 输出至 stderr | expr 输出至 stderr | var=$str |
測试:先如果 str 不存在 (用 unset) ,然后測试一下减号 (-) 的使用方法: |
測试:先如果 str 不存在 (用 unset) ,然后測试一下等号 (=) 的使用方法: |
測试:若 str 不存在时。则 var 的測试结果直接显示 "无此变量" |
Linux变量内容的删除、代替与替换的更多相关文章
- 常见linux命令释义(第七天)——ulimit 与变量内容的删除替代与替换。
linux是一个多用户多任务的系统,不同于windows的单人多任务操作系统.再linux上,在同一个时间点上,可以有多个人同时执行多个任务. 那么假若有10个用户,同时打开了100个100M的文件. ...
- Linux变量内容的删除、取代与替换
变量内容的删除与取代 范例一:先让小写的 path 自定义变量配置的与 PATH 内容相同 [root@www ~]# path=${PATH} [root@www ~]# echo $path /u ...
- 变量内容的删除、取代与替换 (Optional)
变量除了可以直接设置来修改原本的内容之外,有没有办法通过简单的动作来将变量的内容进行微调呢? 举例来说,进行变量内容的删除.取代与替换等!是可以的!我们可以通过几个简单的小步骤来进行变量内容的微调喔! ...
- 变量内容的删除、取代与替换(optional)
这部分内容非常繁琐且不易记忆且枯燥,用到来查询即可. 1.变量内容的删除 这一部分比较细枝末节,就不再一一手打了,贴范例图片 #:符合取代文字的最短的一个 ##:符合取代文字的最长的一个 2.变量内容 ...
- Linux ${} 变量内容的提取和替换功能等
[root@localhost log]# var=/dir1/dir2/file.txt 1.对变量取值 [root@localhost log]# echo ${var} /dir1/dir2/f ...
- shell ## %% 变量内容的删除、替代和替换
这个写的很清楚: https://www.cnblogs.com/zhaosunwei/p/6831529.html 自己的理解:以后补充 从前向后删除 # 符合替换字符的“最短的”那个 ## 符合替 ...
- shell中变量内容的删除,替代
删除 ${varname#strMatch} // 在varname中从头匹配strMatch,然后删除从头到第一次匹配到的位置 ${varname##strMatch} // 在varname中从头 ...
- 【转】Linux下变量内容删除与替换
转自:http://www.linuxidc.com/Linux/2015-01/111781.htm 当一个变量被赋予值后,有时会对变量的值进行一些微小的调整,比如删除变量值中特定一部份,或替换掉一 ...
- Shell--变量内容的删除、替代与替换
1. 变量内容的删除与替换 #代表由前面开始删除,所以这里便由开始的/删起,*来代替0到无穷多个任意字符 %由后面向前删除变量内容 例如:echo ${path%:*bin}删除最有一个目录,即从:到 ...
随机推荐
- Chrome 开发者工具(DevTools)中所有快捷方式列表(已整理)
Chrome 开发者工具(DevTools)中所有快捷方式列表(已整理) 前言 Chrome DevTools提供了一些内置的快捷键,开发者利用这些快捷键可以节省常工作中很多日的开发时间.下面列出了每 ...
- luogu2526 [SHOI2001]小狗散步
注意一个景点只能去一次. #include <iostream> #include <cstring> #include <cstdio> #include < ...
- 指定字符串 s,返回 s 所有可能的子串,每个子串必须是一个回文(指顺读和倒读都一样的字符串)
Given a string s, partition s such that every substring of the partition is a palindrome Return all ...
- z作业二总结
这是我的第二次作业,之前在课上所学的我发现已经忘得差不多了,这次的作业让我做的非常累,感觉整个人生都不太好了. 作业中的知识点:int(整型) float(单精度) double(双精度) char( ...
- iOS知识列表
Xib和StoryBoard,自动布局地图导航,实时公交,第三方地图应用本地推送通知,网络推送通知,真机调试,应用上传绘图,图表,曲线图 Xcode使用技巧多线程,runtime机制编码解码,加密设备 ...
- RSA工作原理
摘自:http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html 一.基础数论 1.互质关系 如果两个正整数,除了1以外,没有 ...
- [HNOI2010]CHORUS 合唱队 (区间DP)
题目描述 对于一个包含 NN 个整数的数列 AA ,我们可以把它的所有元素加入一个双头队列 BB . 首先 A1A1 作为队列的唯一元素,然后依次加入 A2∼ANA2∼AN ,如果 Ai<Ai− ...
- Windows下ElasticSearch的使用方式 CURL+Cygwin+Head插件
Windows使用ElasticSearch的命令方法 一.CURL(不推荐) 下载curl安装包,解压到指定目录,在命令行运行解压后的exe文件. 二.Cygwin(推荐) 安装Windows下类l ...
- Dreamweaver8中文版视频教程 [爱闪教程]Dreamweaver8中文版
原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] http://www.176net.com/shipin/UploadFiles_1476/teach1/%5B% ...
- go gin框架 static 静态文件
项目结构: DemoPro: .. .. static/ test.txt .. router := gin.Default() router.Static("/static", ...