
Shell
Shell相关技巧和知识
shenweihui
这个作者很懒,什么都没留下…
展开
-
Bash string manipulation
#! /bin/bash# assignmentstr="abc"echo $str# appendstr="efg $str"# subsutitutionstr=$(echo $str | sed -e s/.* /([a-zA-Z]/+/)$//1/)echo $str# stripstr="abc efg"str=${str##* }echo $str# uppercase 2str=原创 2010-03-06 12:27:00 · 1261 阅读 · 0 评论 -
Shell Regex
如何查找一个匹配特定模式的文件名for f in *.sh; do if echo $f | grep -q ^[a-zA-Z]+/.sh; then echo $f fidone这里我们在当前目录下,查找shell文件,并且,basename只包含ascii字符。这里"/."是必须的,否则就会匹配任意字符。 我们还以用ba原创 2010-03-06 01:30:00 · 1463 阅读 · 0 评论 -
string splitting
假设我们要split以:分隔的PATH变量,并迭代每个PATH中的目录。我们可以使用tr把:转换成空格,之后直接迭代这个变量?for d in $(echo $PATH | tr : ); do echo $d done这段代码在有时候正常工作,有时候不行。假设PATH中的的目录不含有空格,则会正常工作。由于command substitution结束后,sh原创 2010-03-14 07:14:00 · 768 阅读 · 0 评论 -
Why echo is not portable
echo 命令在不同shell下的输出是不一样的,在bash中,echo -e可以用来转义输出字符串,但是在ksh88中,-e选项是不支持的,POSIX中也没有定义-e选项,所以为了保持一定的可移植性,可以使用printf命令。reference: [1] http://cfajohnson.com/shell/cus-faq.html#0b原创 2010-04-24 01:27:00 · 1097 阅读 · 0 评论 -
awk array subscriptor type
awk的array是关联数组,由于awk允许string和numeric相互操作,所以需要小心当使用numeric和string作为array下标时的区别。awk的array的下标都是string类型,对于Non-string类型的下标,将首先将Non-string转换成string,在进行索引。 awk有一个内建变量CONVFMT用于完成numeric到string的转换,我们可原创 2010-03-21 06:02:00 · 1615 阅读 · 1 评论 -
重定向Bash命令——time
前言: 由于需要获得一个程序的运行时间,我们可以在Shell里简单地调用time command的形式来获取一个程序运行的real, user, system等时间信息,但是默认输出的形式类似: real 0m0.077s user 0m0.077s sys 0m0.077s 假定我们只关心用户态时翻译 2010-01-09 13:50:00 · 7234 阅读 · 4 评论