删除
(1)定义一个变量 path=${PATH} , 将环境变量PATH的值赋给自定义变量path , echo path可以输出该值
![bash变量内容的删除 - DAWN - DAWN bash变量内容的删除 - DAWN - DAWN](http://img1.ph.126.net/v1o-nVxm1kSyHAmmzTw68Q==/6598076919367081045.png)
![bash变量内容的删除 - DAWN - DAWN bash变量内容的删除 - DAWN - DAWN](http://img1.ph.126.net/jwzAcQsHEZlD5miH0EcGoQ==/6598092312529870543.png)
命令解释:
命令原型 ${variable#content}
【1】 variable进行删除的变量 在例子中就是path
【2】 # 代表从变量前面开始删除,并且只删除最短的一个
【3】 content表示要删除的内容 在例子中就是/*local/bin:
【4】 * 代表通配符
当执行(2)中的命令时, / * local/bin匹配到的是/usr/local/sbin:/usr/local/bin: , usr/local/sbin:/usr/是通过通配符*匹配到的 , 因此/*local/bin = / + usr/local/sbin:/usr/ + local/bin = /usr/local/sbin:/usr/local/bin:
(3)删除前面所有目录,保存最后一个目录 输入命令 echo #{path#/*:}
![bash变量内容的删除 - DAWN - DAWN bash变量内容的删除 - DAWN - DAWN](http://img1.ph.126.net/Nsvnmdq_YAevki_hFh1tUw==/6598096710576382057.png)
【1】 ##代表从变量的前面开始删除,并且只删除最长的一个
(4)从后往前删除
![bash变量内容的删除 - DAWN - DAWN bash变量内容的删除 - DAWN - DAWN](http://img1.ph.126.net/IU92ntkLZXBj1r6VusS-0Q==/6598181372971721695.png)
命令解释:
命令原型 ${variable%content}
【1】 variable进行删除的变量 在例子中就是path
【2】 % 代表从变量前面开始删除,并且只删除最短的一个
【3】 content表示要删除的内容 在例子中就是games*games
【4】 * 代表通配符
【5】删除的内容要从后往前看,games*games应该先看后面的games再看*,接着看开头games , 该语句匹配的就是 games:/usr/loal/games
【6】 %%代表从变量的后面开始删除,并且只删除最长的一个
替换
![bash变量内容的删除、替换 - DAWN - CGYDAWN bash变量内容的删除、替换 - DAWN - CGYDAWN](http://img0.ph.126.net/fj86ODZG7l3OX8WAa8OOtg==/6630574084980968016.png)
命令解释:
命令原型 ${variable/content/replace}
【2】/是替换关键字,//内是被替换的内容
【3】content表示要删除的内容 在例子中就是mail
【4】repalce表示替换的内容 在例子中就是MAIL
【5】//代表从替换所有符合规定的内容
![bash变量内容的删除、替换 - DAWN - CGYDAWN bash变量内容的删除、替换 - DAWN - CGYDAWN](http://img2.ph.126.net/y1SCNTUCU23djIAcsv3d3g==/6630613667399573606.png)
测试与内容替换
![bash变量内容的删除、替换 - DAWN - CGYDAWN bash变量内容的删除、替换 - DAWN - CGYDAWN](http://img2.ph.126.net/EFFL8UZ3kpPY8DRaNe3tog==/6598271532925200920.png)
命令解释:
(1)variable后有一个冒号“:”,当variable不为空而为空字符时,该冒号则表示将content值赋给variable这个变量;若不是空字符也不为空,则维持该未知变量的原值,不会将content值赋给variable这个变量。