Unix Shell程序编写的方法详解
http://tech.ddvip.com 2007年07月04日 社区交流
内容摘要:为了不同的需要,UNIX提供了不同的Shell。现在的UNIX大部分都支持BourneShell,以下教程就以BourneShell(Bsh)为例,一步步的领略UNIX Shell的强大功能,占先其强大魅力,达到更方便灵活的管理、应用UNIX的目的。
的信息项为:
ice_walk:!:411:103:Imsnow ,ice_walk:/home/ice_walk:/bin/bsh
则表明,用户名是ice_walk等信息,在最后一项"/bin/bsh"表明用户的sh环境类型是bsh,于是系统启动之。在启动或执行(包括下面我们要讲
的shell程序--脚本)过程中可以使用以下一些参数,我们一一说明:
-a 将所有变量输出
-c "string"从string中读取命令
-e 使用非交互式模式
-f 禁止shell文件名产生
-h 定义
-i 交互式模式
-k 为命令的执行设置选项
-n 读取命令但不执行
-r 受限模式
-s 命令从标准输入读取
-t 执行一命令,然后退出shell
-u 在替换时,使用未设置的变量将会出错
-v 显示shell的输入行
-x 跟踪模式,显示执行的命令
许多模式可以组合起来用,您可以试试了,但-ei好象不行,你说why呢?
使用set可以设置或取消shell的选项来改变shell环境。打开选项用"-",关闭选项用"+",多数unix允许打开或关闭a、f、e、h、k、n、u
v和x选项。若显示Shell中已经设置的选项,执行:
$echo $-Bsh中每个用户的home目录下都有一个.profile文件,可以修改该文件来修改shell环境。为了增加一个可执行文件的路径(例如/ice_walk/bin),可以把下面代码加入.profile中PATH=$PATH:/ice_walk/bin;exprot PATH.profile中shell的环境变量意思如下:
CDPATH 执行cd命令时使用的搜索路径
HOME 用户的home目录
IFS 内部的域分割符,一般为空格符、制表符、或换行符
MAIL 指定特定文件(信箱)的路径,有UNIX邮件系统使用
PATH 寻找命令的搜索路径(同dos的config.sys的 path)
PS1 主命令提示符,默认是"$"
PS2 从命令提示符,默认是">"
TERM 使用终端类型
2>Bsh里特殊字符及其含义
在Bsh中有一组非字母字符。这些字符的用途分为四类:作为特殊变量名、产生文件名、数据或程序控制以及引用和逃逸字符控制。他们可以让用户在Shell中使用最少的代码完成复杂的任务。
*> Shell变量名使用的特殊字符
$# 传送给命令Shell的参数序号
$- 在Shell启动或使用set命令时提供选项
$? 上一条命令执行后返回的值
$$ 当前shell的进程号
$! 上一个子进程的进程号
$@ 所有的参数,每个都用双括号括起
$* 所有参数,用双括号括起
$n 位置参数值,n表示位置
$0 当前shell名
*>产生文件名的特殊字符包括"*","?","[]",上面讲过,不再多说。
*>数据或程序控制使用的特殊字符
>(file) 输出重定向到文件中(没有文件则创建,有则覆盖)
>>(file) 输出重定向到文件中(没有则创建,有则追加到文件尾部)
<(file) 输入重定向到文件 ; 命令分割符| 管道符 & 后台运行(例如:sleep 10 &) ` ` 命令替换,重定向一条命令的输出作为另一命令的参数。
*>对于引用或逃逸的特殊字符
Bsh用单引号' '和双引号" "将特殊字符或由空白分隔的字引用起来组成一个?
责编:豆豆技术应用
- Linux/Unix 新闻
- Linux/Unix 入门
- Linux/Unix 命令
- Linux/Unix 安装
- Linux 嵌入式系统
- Linux/Unix 编程
- Linux/Unix 管理
- Linux/Unix 桌面
- Linux/Unix 内核
- Linux/Unix 软件
- SCO Unix
- NetBSD
- OpenBSD
- Redhat/Fedora Linux
- 手机
- Linux/Unix find 搜索命令
- Linux/Unix vi 命令
- Linux/Unix kde 桌面环境
- Linux/Unix GNOME 桌面环境
- Linux/Unix Make 命令
- Linux/Unix crontab 命令
- Linux/Unix ext3 文件系统
- Linux/Unix 文件系统详解
- Linux/Unix ADSL 拨号设置
- Linux/Unix GRUB 配置及应用
- Linux/Unix nfs配置
- Linux/Unix 硬件信息查看及管理
- Linux/Unix 优化
- Linux/Unix 交换分区Swap管理及应用
- Linux/Unix 用户管理
- Linux/Unix Ramdisk
- Linux/Unix 密码恢复管理
- Linux/Unix 文件删除恢复
- Linux/Unix fdisk分区
- Linux/Unix lvs负载均衡管理
- Linux/Unix root用户
- Linux/Unix 集群
- Linux/Unix 日志
- 更多Linux/Unix专题……