Bash by example, Part 1 笔记
时间:2008-08-09 来源:wangshzh
1. 变量扩展, 当环境变量没有用空白(空格或制表键)与周围文本分开时,
请使用更明确的花括号形式。
$ myvar='This is my environment variable!'
$ echo foo${myvar}bar
fooThis is my environment variable!bar
2. 用于从文件路径中提取文件名和路径名的命令basename, dirname
$ basename /usr/local/share/doc/foo/foo.txt
foo.txt
$ dirname /usr/local/share/doc/foo/foo.txt
/usr/local/share/doc/foo
3. 命令替换,将一个命令的执行结果赋值给一个变量,使用``, 或$()
$ MYDIR=`dirname /usr/local/share/doc/foo/foo.txt`
$ echo $MYDIR
/usr/local/share/doc/foo
$ MYDIR=$(dirname /usr/local/share/doc/foo/foo.txt)
$ echo $MYDIR
/usr/local/share/doc/foo
4. 字符串截断, ${MYVAR##*fo}, ${MYVAR#*fo}, ${MYVAR%%*fo}, ${MYVAR%*fo}
5. If 语句, 在 bash 中,所有布尔表达式都用方括号括起
if [ "${1##*.}" = "tar" ]
6. 引用, 全部需要引用处理的元字符如下:
* ? [ ] ' " \ $ ; & ( ) | ^ ! # newline tab
对于单个元字符, 可采用 \元字符 转义。
对于整个串,可以在字符串前后加上单引号('),将使整个串中所有的元字符失去特殊含义。
对于整个串中有少数例外,采用双引号,双引号禁止除了$(变量)和`(反引号,命令域)以外的所有元字符。
请使用更明确的花括号形式。
$ myvar='This is my environment variable!'
$ echo foo${myvar}bar
fooThis is my environment variable!bar
2. 用于从文件路径中提取文件名和路径名的命令basename, dirname
$ basename /usr/local/share/doc/foo/foo.txt
foo.txt
$ dirname /usr/local/share/doc/foo/foo.txt
/usr/local/share/doc/foo
3. 命令替换,将一个命令的执行结果赋值给一个变量,使用``, 或$()
$ MYDIR=`dirname /usr/local/share/doc/foo/foo.txt`
$ echo $MYDIR
/usr/local/share/doc/foo
$ MYDIR=$(dirname /usr/local/share/doc/foo/foo.txt)
$ echo $MYDIR
/usr/local/share/doc/foo
4. 字符串截断, ${MYVAR##*fo}, ${MYVAR#*fo}, ${MYVAR%%*fo}, ${MYVAR%*fo}
5. If 语句, 在 bash 中,所有布尔表达式都用方括号括起
if [ "${1##*.}" = "tar" ]
6. 引用, 全部需要引用处理的元字符如下:
* ? [ ] ' " \ $ ; & ( ) | ^ ! # newline tab
对于单个元字符, 可采用 \元字符 转义。
对于整个串,可以在字符串前后加上单引号('),将使整个串中所有的元字符失去特殊含义。
对于整个串中有少数例外,采用双引号,双引号禁止除了$(变量)和`(反引号,命令域)以外的所有元字符。
相关阅读 更多 +