分类:
2006-04-24 17:05:35
2) 截断字符串##从头截断至最长的匹配,#截断至最短匹配。$ MYDIR=$(dirname /usr/local/share/doc/foo/foo.txt)
$ echo $MYDIR
/usr/local/share/doc/foo
$ 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