Chinaunix首页 | 论坛 | 博客
  • 博客访问: 662300
  • 博文数量: 137
  • 博客积分: 7000
  • 博客等级: 少将
  • 技术积分: 1335
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-23 15:18
文章分类

全部博文(137)

文章存档

2010年(2)

2009年(2)

2008年(2)

2007年(30)

2006年(99)

2005年(2)

我的朋友

分类:

2006-04-24 17:05:35

1) 命令替换``还有一种写法$()。
$ MYDIR=$(dirname /usr/local/share/doc/foo/foo.txt)
$ echo $MYDIR
/usr/local/share/doc/foo
2) 截断字符串##从头截断至最长的匹配,#截断至最短匹配。
$ MYVAR=foodforthought.jpg
$ echo ${MYVAR##*fo}
rthought.jpg
$ echo ${MYVAR#*fo}
odforthought.jpg
3) 截断字符串%%从尾截断至最长的匹配,#截断至最短匹配。
$ MYFOO="chickensoup.tar.gz"
$ echo ${MYFOO%%.*}
chickensoup
$ echo ${MYFOO%.*}
chickensoup.tar
4) 截断字符串指定长度、位置,:起始位置:长度。
$ EXCLAIM=cowabunga
$ echo ${EXCLAIM:0:3}
cow
$ echo ${EXCLAIM:3:7}
abunga

5) {}明确变量扩展,例如上面的例子,如果不要{}结果是这样的:
# echo $EXCLAIM:3:7
cowabunga:3:7
6) 请记住,如果养成将所有字符串自变量用双引号括起的习惯,将除去很多类似的编程错误。例如:
 if [ "$myvar" = "foo bar oni" ]
then
echo "yes"
fi
7) 鼓励用"local"这种方式设计所有的函数。只有在明确希望要修改全局变量时,才应该使用 "local"。例如:
#!/usr/bin/env bash

myvar="hello"

myfunc() {
local x
local myvar="one two three"
for x in $myvar
do
echo $x
done
}

myfunc

echo $myvar $x

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