0.shell的零碎知识:
0.1查看系统支持的shell类型
cat /etc/shells
0.2查看当前shell类型
echo $0
0.3传统Bourne shell
/bin/sh
0.4Bourne-Again SHell — 这是关于(sh)的一个双关语(Bourne again / born again)。/bin/bash
0.5 $variable实际上只是${variable}的简单的简写形式。在某些场合使用$variable形式会引起错误。
0.6 赋值=号的左右两边都不能有空白符.
0.7 把变量引起来会保留空白
hello="A B C D"
echo $hello
echo "$hello"
echo '$hello' # $hello 在单引号中的变量引用会被禁止, 字符"$"会仅仅被认为是一个普通的字符,而不是变量的前缀.
1.语法相关细节:
1.1 #注释符号
注释#中含有中文可能会出现错误tstecho.sh: cannot execute binary file
1.2 ;(分号) 命令分割符,使得命令可以在一行
3. \ 转义字符:反斜线, 即\
\X将会"转义"字符X. 这等价于"X", 也等价于'X'. \通常用来转义"和', 这样双引号和但引号就不会被解释成特殊含义了.
4. 命令替换. `command`结构可以将命令的输出赋值到一个变量中去.
5. 空命令[冒号, 即:]. 等价于"NOP" (no op, 一个什么也不干的命令). 也可以被认为与shell的内建命令true作用相同。
6. ;;终止case选项[双分号, 即;;]
7. "点"命令[句点, 即.]. 等价于source命令(参见 例子 11-21). 这是一个bash的内建命令.
8. " 部分引用[双引号, 即"]. "STRING"将会阻止(解释)STRING中大部分特殊的字符
9. ' 全引用[单引号, 即']. 'STRING'将会阻止STRING中所有特殊字符的解释. 这是一种比使用"更强烈的形式.
10. ,逗号操作符. 逗号操作符链接了一系列的算术操作. 虽然里边所有的内容都被运行了,但只有最后一项被返回.
11. ! 取反操作符[叹号, 即!]. !操作符将会反转命令的的结果,
12. * 通配符[星号, 即*]. *可以用来做文件名匹配(这个东西有个专有名词叫)的"通配符".
含义是, 可以用来匹配给定目录下的任何文件名.
13. 测试操作符.
14. 配符. ?在通配(globbing)中, 用来做匹配单个字符的"通配符", 在正则表达式中, 也是用来表示一个字符
15. $(引用变量的内容).
如果管道中的某个命令产生了一个异常,并中途失败,那么这个管道将过早的终止.
这种行为被叫做broken pipe,
并且这种状态下将发送一个SIGPIPE .
16,-
选项, 前缀. 在所有的命令内如果想使用选项参数的话,前边都要加上"-".
COMMAND -[Option1][Option2][...]
17.变量的名字和变量的值.
如果variable1是一个变量的名字,
那么$variable1就是引用这变量的值,
即这边变量所包含的数据.
18.位置参数:
从命令行传递到脚本的参数: $0, $1, $2, $3 . . .
$0就是脚本文件自身的名字, $1 是第一个参数, $2是第二个参数, $3是第三个参数. $9之后的位置参数就必须用大括号括起来了,比如, ${10}, ${11}.
两个比较特殊的变量$*和$@ 表示所有的位置参数.
阅读(739) | 评论(0) | 转发(0) |