Tips for Shell(3)
时间:2006-04-24 来源:wolfssss
1) 命令替换``还有一种写法$()。
$ MYDIR=$(dirname /usr/local/share/doc/foo/foo.txt)2) 截断字符串##从头截断至最长的匹配,#截断至最短匹配。
$ echo $MYDIR
/usr/local/share/doc/foo
$ MYVAR=foodforthought.jpg3) 截断字符串%%从尾截断至最长的匹配,#截断至最短匹配。
$ echo ${MYVAR##*fo}
rthought.jpg
$ echo ${MYVAR#*fo}
odforthought.jpg
$ MYFOO="chickensoup.tar.gz"4) 截断字符串指定长度、位置,:起始位置:长度。
$ echo ${MYFOO%%.*}
chickensoup
$ echo ${MYFOO%.*}
chickensoup.tar
$ EXCLAIM=cowabunga6) 请记住,如果养成将所有字符串自变量用双引号括起的习惯,将除去很多类似的编程错误。例如:
$ echo ${EXCLAIM:0:3}
cow
$ echo ${EXCLAIM:3:7}
abunga
5) {}明确变量扩展,例如上面的例子,如果不要{}结果是这样的:
# echo $EXCLAIM:3:7
cowabunga:3:7
if [ "$myvar" = "foo bar oni" ]7) 鼓励用"local"这种方式设计所有的函数。只有在明确希望要修改全局变量时,才不应该使用 "local"。例如:
then
echo "yes"
fi
#!/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
相关阅读 更多 +