仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1099|回复: 9
打印 上一主题 下一主题

[shell编程] 给大家带来shell变量的特别用法

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:14:45 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!假定我们界说了一个变量为:
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]有设定,t利用my.file.txt作传回值。(空值及非空值r不作处置)
${file:-my.file.txt}:假设$file]有O定或榭罩担t利用my.file.txt作骰刂怠(非空值r不作处置)
${file+my.file.txt}:假设$fileO榭罩祷蚍强罩担褂my.file.txt作骰刂怠(]O定r不作处置)
${file:+my.file.txt}:若$file榉强罩担t利用my.file.txt作骰刂怠(]O定及空值r不作处置)
${file=my.file.txt}:若$file]O定,t利用my.file.txt作骰刂担r$filex值my.file.txt。(空值及非空值r不作处置)
${file:=my.file.txt}:若$file]O定或榭罩担t利用my.file.txt作骰刂担r$filex值my.file.txt。(非空值r不作处置)
${file?my.file.txt}:若$file]O定,tmy.file.txt出至STDERR。(空值及非空值r不作处置)


${file:?my.file.txt}:若$file没设定或为空值,则将my.file.txt输入至STDERR。(非空值r不作处置)
${#var}可盘算出变量值的长度:

${#file}可失掉27,由于/dir1/dir2/dir3/my.file.txt是27个字节
欢迎大家来到仓酷云论坛!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-12 10:49

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表