Shell及shell编程.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:60 大小:277KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Shell及shell编程.doc

Shell及shell编程.doc

预览

免费试读已结束,剩余 50 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

.shell基础基本介绍,环境,选项,特殊字符.shell变量用户定义变量,环境变量,位置变量(shell参数).shellscript编程条件测试,循环及重复控制.shell定制1.shell基础知识作者:StephenBourne在Bell实验室开发建议:mansh查看相关UNIX上的改进或特性(1)shell提示符及其环境/etc/passwd文件提示符:$/etc/profile$HOME/.profile(2)shell执行选项-n测试shellscript语法结构,只读取shellscript但不执行-x进入跟踪方式,显示所执行的每一条命令,用于调度-aTagallvariablesforexport-c"string"从strings中读取命令-e非交互方式-f关闭shell文件名产生功能-hlocateandrememberfunctionsasdefind-i交互方式-k从环境变量中读取命令的参数-r限制方式-s从标准输入读取命令-t执行命令后退出(shellexits)-u在替换中如使用未定义变量为错误-vverbose,显示shell输入行这些选项可以联合使用,但有些显然相互冲突,如-e和-i.(3)受限制shell(RestirctedShell)sh-r或/bin/rsh不能执行如下操作:cd,更改PATH,指定全路径名,输出重定向,因此可以提供一个较好的控制和安全机制。通常rsh用于应用型用户及拨号用户,这些用户通常是看不到提示符的。通常受限制用户的主目录是不可写的。不足:如果用户可以调用sh,则rsh的限制将不在起作用,事实上如果用户在vi及more程序中调用shell,而这时rsh的限制将不再起作用。(4)用set改变shell选项用户可以在$提示符下用set命令来设置或取消shell的选项。使用-设置选项,+取消相应选项,大多数UNIX系统允许a,e,f,h,k,n,u,v和x的开关设置/取消。set-xv启动跟踪方式;显示所有的命令及替换,同样显示输入。set-tu关闭在替换时对未定义变量的检查。使用echo$-显示所有已设置的shell选项。(5)用户启动文件.profilePATH=$PATH:/usr/loacl/bin;exportPATH(6)shell环境变量CDPATH用于cd命令的查找路径HOME/etc/passwd文件中列出的用户主目录IFSInternalFieldSeparator,默认为空格,tab及换行符MAIL/var/mail/$USERNAMEmail等程序使用PATHPS1,PS2默认提示符($)及换行提示符(>)TERM终端类型,常用的有vt100,ansi,vt200,xterm等示例:$PS1="test:";exportPS1test:PS1="\$";exportPS1$echo$MAIL/var/mail/username(7)保留字符及其含义$shell变量名的开始,如$var|管道,将标准输出转到下一个命令的标准输入#注释开始&在后台执行一个进程?匹配一个字符*匹配0到多个字符(与DOS不同,可在文件名中间使用,并且含.)$-使用set及执行时传递给shell的标志位$!最后一个子进程的进程号$#传递给shellscript的参数个数$*传递给shellscript的参数$@所有参数,个别的用双引号括起来$?上一个命令的返回代码$0当前shell的名字$n(n:1-)位置参数$$进程标识号(ProcessIdentifierNumber,PID)>file输出重定向<file输入重定向`command`命令替换,如filename=`basename/usr/local/bin/tcsh`>>file输出重定向,append转义符及单引号:$echo"$HOME$PATH"/home/hbwork/opt/kde/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:$echo'$HOME$PATH'$HOME$PATH$echo\$HOME$PATH$HOME/opt/kde/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/hbwork/bin其他:$dir=ls$$dir$aliasdirls$dirls>filelistls>>filelistwc-l<filelistwc-lfilelistsleep5;echo5s