Ubuntu命令学习:bash中变量内容的删除、替代与替换
2013-05-17 23:24
411 查看
一个变量的内容可能经常被替换的,比如说我安装了某软件,但是软件的可执行文件没有被更新到环境变量中去,因此不得不每次进入安装文件的bin目录下去执行相应的可执行程序来启动程序,这是很麻烦的一件事情。你可以将这个bin目录追加到PATH环境变量中,以此便能一劳永逸,无论在任何路径下都能启动该应用程序了。但是对于刚刚开始正式使用Ubuntu的菜鸟来说,一切没有那么顺利的,你会犯错,甚至把PATH环境变量搞错,这真是要命的错误,如何处理好变量内容就成了个中关键。
一步到位的方法是这样:进入你可执行程序的文件夹,然后执行一下命令
好了,这样肯定是万无一失了。但是对于菜鸟来说,你很可能写成这个样子:
这两种处理方式的输出分别是:
所以说如果要将以上错误的变量恢复原型,应该做的操作如下:
对于
一步到位的方法是这样:进入你可执行程序的文件夹,然后执行一下命令
PATH=$PATH:$(pwd) 或者是 PATH=$PATH:`pwd`/*注意,这里的`不是单引号,而是键盘左上角,1旁边的那个符号*/
好了,这样肯定是万无一失了。但是对于菜鸟来说,你很可能写成这个样子:
PATH=$PATH:${pwd} /*即,你小括号变成了大括号,而$()才是先行指令的模式,这个错误的指令会把*/或者是写成这个样子
PATH=$PATH:'pwd'
这两种处理方式的输出分别是:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games: /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:pwd此时,你就要使用变量内容的删除与替换的规则进行修正了,规则如以下表格所示:
变量设置方式 | 说明 |
${ 变量#关键字} | 若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除 |
${变量##关键字} | 若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除 |
${变量%关键字} | 若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除 |
${变量%%关键字} | 若变量内容从尾向前的数据符合“关键字”,则将符合的最长数据删除 |
${变量/旧字符串/新字符串} | 若变量内容符合“旧字符串”,则将第一个字符串用新字符串代替 |
${变量//旧字符串/新字符串} | 若变量内容符合“旧字符串”,则全部用新字符串去代替旧字符串 |
对于
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:施加操作:
PATH=${PATH%:}对于
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:pwd施加操作:
PATH=${PATH%:pwd}好了,以上就是一个简单的对变量处理的过程了,最后有个小点要注意,对于诸如这个操作:
echo PATH=${PATH#/*lightdm:}虽然终端显示的结果确实是将PATH变量中的第一个路径给去掉了,但是,PATH变量的值并没有改变,你再echo $PATH试试,其实PATH还是原值。如果想要使得相应的操作对变量生效,必须要进行一个赋值的过程。即让
PATH=${PATH#lightdm:}
相关文章推荐
- 【linux学习笔记】 bash学习之变量内容的删除、取代与替换
- 常见linux命令释义(第七天)——ulimit 与变量内容的删除替代与替换。
- bash学习:变量的删除,替代与替换
- 变量内容的删除、替代与替换(常用)
- 关于BASH中变量内容的删除、取代与替换
- bash变量内容的删除、替换
- 变量内容的删除、替代与替换
- 2-6 变量 内容的删除 替换 替代
- shell脚本学习第四天——bash内部变量,变量主串,变量替换
- Linux变量内容的删除、取代与替换
- 【shell】变量内容的删除和替换
- bash学习1 命令别名设置、显示当前目录、变量使用例子
- Linux学习命令汇总四——Bash中变量.文件通配符.管道与重定向.算术运算及循环或判断语句
- shell中变量内容的删除、替换
- echo 变量内容删除和替换
- Linux变量内容的删除、取代与替换
- Linux变量内容的删除、代替与替换
- [Shell]Bash变量:变量测试与内容替换
- Linux学习日记--基础命令(7)--bash中的变量,配置文件
- bash变量-数值运算与运算符/变量测试与内容替换/环境变量配置文件