Chinaunix首页 | 论坛 | 博客
  • 博客访问: 34339
  • 博文数量: 10
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 105
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-02 00:18
个人简介

undertone & excelence

文章分类

全部博文(10)

文章存档

2015年(1)

2014年(9)

我的朋友

分类: LINUX

2014-08-04 11:23:52

变量的测试和变量替换。A新变量,B旧变量,C更新内容

A=${B-C}  判断B是否有赋值,无则赋新值(A=C)  A=${B:-C}判断B值空否?

A=${B+C}  判断B是否有赋值,有则赋新值(A=C)  A=${B:+C}判断B值空否?

A=${B=C}  判断B是否有赋值,无则更新AB的值(A=C,B=C) A=${B:=C}判断B值空否?

A=${B?C}  判断B是否有赋值,无则输出错误到stderr A=${B:?C}判断B值空否?

 

变量的截取:

${var:A:B}  从左起第A个字符开始(首字符为第0),提取B个字符。eg:var=12345 ${var:3:2}的值是45

${var:X}  X表示从左边去掉的字符数 egvar=12345 ${var:3}的值是45

从右边开始的情况:

${var:0-A:B} 从右边数起的第A个字符截取(尾字符为第1),截取长度为B(往右)

eg:var=012345 ${var:0-3:2}值为34

${var:0-X} 表示从倒数第X个开始截取右边的所有字符。 eg:${var:0-3}的值是345

关键字截取和替换:
${PATH##*:}     #号表示从左边切掉,##表示贪婪模式,切掉以任意字符(*)开头,分号结尾掉部分。结果显示PATH变量掉醉汉哦/bin
${PATH%%:*}   %表示从右边开始切掉。%%表示贪婪模式。切掉以任意字符(*)结尾,分号开头掉部分。结果显示PATH的第一个条路径
${PATH//:/ | }   /str/str 表示替换,//str/str表示以贪婪模式替换。
 


小知识

(()) 可以做大小比较的运算或者是自加自减的运算,eg: ((A++)) ((A返回值

${#var}返回变量长度。((2**3))的值为8**表示次方运算



 

变量简写:

“矩阵变量”简写:eg: mkdir {A,B,C}-{1,2,3} 将会建立9个目录。

 

特殊变量:

$# 变量个数

$@ 全部变量(分隔符隔开)

$* 变量的整体

$$ 执行程序的PID

 

文件删除复制中的通配符:

rm [c-e] 会匹配 cde三个文件。等价于 rm {c,d,e}

rm [c-d]* 会匹配 cd和以cd开头的文件

rm [c-d]?? 匹配cd开头的,文件名是三个字符的文件。

rm [a-z]等价于rm [[:lower:]]

rm [a-c]不等价于rm “[a-c]”(双引号括起,将会匹配[a-c]这个文件名,而非abc三个文件。单引号亦然。)

注意rm不适合RE表达式。

阅读(761) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~