阅 读 文 章

bsh使用指南

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(sdccf) | 时间:2007-05-27 | 浏览:人次 ]


 
 
wuqiong 编纂
   
    bsh 是sco open server中的用户缺省shell,也是许多其它OS中支持的shell。另外,由于ksh是bsh的扩展,几乎所有的bsh脚本都可在ksh中运行。所以有必要对bsh有所了解。
    在sco open server中bsh命令位于/bin/sh,在某些系统中可能叫做/bin/bsh。

    shell的启动和环境

1. shell启动时的选项
-a 将所有变量输出
-c "string" 从string中读取命令
-e 使用非交互模式
-f 禁止shell文件名产生
-h 定义
-i 交互式模式
-k 为命令的执行设置选项
-n 读取命令但不执行
-r 受限模式
-s 命令从标准输入读取
-t 执行一条命令,然后退出shell
-u 在替换时使用未设置的变量将会出错
-v 显示shell的输入行
-x 跟踪模式,显示执行的命令
以上不冲突的选项可以组合使用。

2. 执行sh -r 或者/bin/rsh可以进入受限模式。在受限模式下,
用户不能改变自己的目录,不能修改PATH变量,不能使用绝对路径名
执行命令,也不能重定向输出。

3. 使用set改变shell选项。
set -x 是加上该选项
set +x 是去掉该选项

4. 用户shell启动文件为.profile,你可以在该文件中添加环境变量和脚本。

5. shell环境变量
CDPATH cd命令使用的搜索路径
IFS 内部的域分隔符,一般为空格符、制表符或换行符
PS1 主命令提示符,默认$
PS2 从命令提示符 默认>;

    特殊字符及其含义

1. shell变量名使用的特殊字符
$# 传给命令shell的参数个数
$- 在shell启动或者使用set命令时提供选项
$? 上一条命令执行后返回的值
$$ 当前shell的进程号
$! 上一个子进程的进程号
$@ 所有的参数,每个都用双括号括起。
$* 所有参数,用双括号括起。
$n 位置参数值,n表示位置。 $0是当前shell脚本名,$1是第一个参数,……

2. 通配符
ls [!m]* 寻找不以m开头的文件名

3. 数据或程序控制使用的特殊字符
` `命令替换,重定向一条命令的输出作为另一条命令的输入。(注意啦:是与单引号相反的那个符号`)
4. 使用双引号,始其中的变量形式可以引用值
使用\逃逸符,表示其后的字符不具有特殊含义或者不是shell的函数。

    shell变量

9.2.1 用户定义变量
$count=1
$x=20 $y=aaaa
变量未赋值使用时,shell并不报告错误,而是给变量一个空值。

9.2.2 条件变量替换
${count:-2} 意义为:引用count变量,如果前面未设置该变量,则给其赋缺省值2
${count:?message} 意义为:引用count变量,如果前面未设置该变量,则显示message

9.2.3 readonly var 将var设置为只读变量 
设置的变量都是在子shell中起作用,也就是说是局部变量。用export命令可以让变量被其他子shell识别。

    运算及条件循环结构

9.3.6 对shell变量进行算术运算
expr integer operator integer
operator 有:+ - * / % 其中 * 要使用\*进行转义
没有括号进行优先运算,所以需要用``分层运算: expr `expr 5 + 7` / 3 
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 变量 命令 shell 使用 command 执行 文件 时候 选项

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.