Chinaunix首页 | 论坛 | 博客
  • 博客访问: 519216
  • 博文数量: 137
  • 博客积分: 3170
  • 博客等级: 中校
  • 技术积分: 1455
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-17 11:47
文章分类

全部博文(137)

文章存档

2015年(2)

2013年(1)

2012年(6)

2011年(5)

2010年(62)

2009年(61)

我的朋友

分类: LINUX

2009-11-07 18:24:06

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}.

两个比较特殊的变量$*和$@ 表示所有的位置参数.

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