Korn Shell(ksh)文档.doc_第1页
Korn Shell(ksh)文档.doc_第2页
Korn Shell(ksh)文档.doc_第3页
Korn Shell(ksh)文档.doc_第4页
Korn Shell(ksh)文档.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Korn Shell1.语法特殊的文件/etc/profile在登录时首先自动执行。$HOME/.profile在登录时第二个自动执行。$ENV在创建一个新的KShell时指定要读的一个文件。文件名元字符*匹配有零或零个以上字符的字符串?匹配任何单个字符abc匹配括号内任何一个字符,也可用连字符指定一个范围(例如,a-z,A-Z,0-9)!abc匹配任何不包括在括号内的字符?(pattern)匹配模式的零个或一个实例*(pattern)匹配指定模式的零个或多个实例(pattern)匹配指定模式的一个或多个实例(pattern)只匹配指定模式的一个实例!(pattern)匹配任何不匹配模式的字符串n匹配与()中的第n个子模式匹配的文本。当前用户的主目录name用户name的主目录这个模式pattern可能是由分隔符“|”或“”分隔的模式的序列,例:pr !(*.o|core) | lp引用;命令分隔符后台执行( )命令分组|管道 &重定向符号* ? + - !文件名元字符“中间的字符会逐字引用,除了替换命令和$替换变量.中间的所有字符都会逐字引用在其后的字符会按其原来的意义逐字采用.如在”中使用”,$a警告,b退格,f换页,n换行,r回车,制表符,v垂直制表符,nnn八进制值,xnn十六进制值,单引号,”双引号,反斜线,命令的替换$变量的替换命令形式Cmd &在后台执行Cmd1;cmd2命令序列,依次执行cmd1;cmd2;将命令做为一组来执行(cmd1;cmd2)在子shell中,将命令做为一组执行Cmd1|cmd2管道;将cmd1的输出作为cmd2的输入Cmd1 cmd2命令替换;用cmd2的输出作为cmd1的参数Cmd1$(cmd2)命令替换,可以嵌套Cmd$(expression)运算替换。用表达式结果作为参数Cmd1&cmd2逻辑与。如果cmd1成功才执行cmd2Cmd1|cmd2逻辑或。如果cmd1成功则不会执行cmd2重定向形式文件描述符:0标准输入stdin默认为键盘1标准输出stdout2标准错误stderrCmd file将cmd的结果输出到file(覆盖)Cmd file将cmd的结果输出到file(追加)Cmd file从file中获取cmd的输入Cmd text将shell脚本的内容(直到遇见一个和text一样的标记为止)作为cmd的输入Cmd file在标准输入上打开文件以便读写Cmd &n将输出发送到文件描述符n。ll &1Cmd m&n将本来输出的m中的内容转发到n中。Ll 3&2Cmd &-关闭标准输出Cmd &n获取输入Cmd m&nCmd file将标准错误发到file中Cmd file 2&1将标准错误和标准输出都发到fileCmd f1 2f2将标准输出发到f1,标准错误发到f2Cmd | tee files将输出发送到标准输出和files中Cmd 2&1 | tee files将输出和错误同时发到标准输出和files中2.变量变量替换下列表达式中不允许使用空格。冒号是可选的,如果用冒号那么变量必须是非空的并设置了初始值。Var=value将变量var设为value$var使用变量var的值;如果变量和其后面的文本是分开的则可以不加大括号。$var:-value如果变量var已设置则使用它,否则使用值value$var:=value如果变量var已设置则使用它,否则使用值value并将value赋给变量var$var:+value如果变量var已设置则使用value,否则什么也不使用例:echo $u-$d;echo $tmp-date如果没设tmp,则执行date;内置变量$#命令行参数的个数$?上一条命令执行后返回的值$当前进程的进程号(PID),通常用于在shell脚本中创建临时文件的名称$0第一个参数即命令名$n命令行上的第n个参数$*将命令行上所有参数作为一个字符串$命令行上所有参数,但每个参数都被引号引起来LINENO脚本或函数内正在执行的命令的行号OLDPWD前一个工作目录(由CD设置)PPID当前SHELL的父进程的进程号PWD当前工作目录(由CD设置)RANDOM=n每次引用时产生一个随机数,如果给定n则以整数n开始SECONDS这个整型变量的值是指从这个shell会话启动算起所过去的秒数。但它更有用的是用脚本中的计时。例:start=$SECONDSread answerfinish=$SECONDSTMOUT如果设置了该变量,则在没有输入的情况下经过TMOUT变量所指定的秒数后,shell退出。值为0时无效。CDPATH允许用户使用简单文件名作为CD的参数,从而快速改变目录。设置方法与PATH类似,通常在启动文件中设置。如果CD的参数是一个绝对路径,则不会查询CDPATH.例:CDPATH=:/u1/nr:/u1/progs:export CDPATHcd nr就会进到nr中去。注意:变量必须大写,定义后必须导出.数组Kshell支持一维数组,最多支持1024个元素。第一个元素为。Set A name value0 value1 声明数组,指定的值就成为name的元素。$nameii为0至1023的值,可以是表达式。返回数组元素i$name返回数组元素$name*,$name返回所有元素下标*和都可以提取整个数组的内容。但当它们在引号中使用时其行为是不同的。使用可生成一个数组,这个数组是原始数组的副本,而使用*,则生成的仅仅是具有单一元素的数组(或者是一个普通变量)。例:set -A a $names*set -A b $namesset|head -5a0=alex helen jenny scottb0=alexb1=helenb2=jennyb3=scott$#name*返回数组元素个数运算符Kshell使用C语言中的运算符。+加;-减;!逻辑非;按进制取反;*乘;/除;%求余;右移;=大于等于;大于;=相等;!=不等;&逻辑与;|逻辑或;3.内置命令#注释后面的一行Break n从for while select until循环中退出或从n次循环中退出Case value inPattern1) cmds1;Pattern2) cmds2;Esac类似于select case.例:Case $1 inNo|yea) response=1break;-tT) table=TRUE;*)echo “unknown option”;exit 1;EsacContinue n在for while select until循环中跳过余下的命令,继续下一次循环(或跳过n次循环)Eval argsargs是一行包含shell变量的代码.eval首先进行变量扩展,并且运行由此产生的命令。在shell变量包括了重定向符号,别名或其他变量时是有用的。例:For optionDoCase “$option” inSave) out= $newfile;Show) out= | more;EsacDoneEval sort $file $outExit n退出脚本,退出状态为n.Export name=value定义全局变量,让其它shell脚本也可以使用。无参数时输出当前定义的全局变量。For x in listDoCommandsDone使变量x(在可选的值列表中)执行commands,省略时假定为”$”位置参数例:For item in cat program_listDoGrep c “$item.co” chap*DoneFunction namecommands;定义一个函数If condition1Then commands1elif condition2Then commands2else commands3Fi条件执行语句。Let expressions执行一个或多个表达式。表达式中的变量前不必有$.如果表达式中包含了空格或其他特殊字符,则必须引起来。例:let “I = I +1”或let i=i+1Read var1?string var2 从标准输入读入一行给相应的变量,并把剩余的单词给最后一个变量。String为相应的提示信息.无参时只等待一次输入。Readonly var1=value var2=value 设置只读变量,无参时显示所有只读变量Return n用于一个函数里面返回状态repeat worddocommandsdone指定一个命令序列执行的次数。例:repeat 3doecho byedoneSelect x in listDoCommandsDone显示一列按list中顺序编号的菜单项。让用户键入行号选择或按return重新显示。例:Ps3=”select thd item number:”Select event in format page view exitDoCase “event” inFormat) nroff $file | lp;Page) pr $file | lp;View) more $file;Exit) exit 0;*)echo “invalid selection”;EsacDone输出为:1.format2.page3.view4.exitselect the item number:set options arg1 arg2 无参时输出所有已知变量的值。Shift n交换位置参数(如将$2变为$1).如果给出n,则向左移动n个位置。通常用于在while循环中迭代命令行参数。N可以是一个整数表达式。Sleep n睡眠n秒钟Test condition或 condition 判断条件,为真返回0,否则返回非0.文件:-a filename如果该文件存在而为真-d filename如果该文件存在且为一个目录,则为真-f filename如果该文件存在且为一个常规文件,则为真-L filename如果该文件存在且为一个符号链接,为真-r filename如果该文件存在且用户对其有读取权限,真-s filename如果该文件存在且包含信息(大于0字节),真-w filename如果该文件存在且对其有写入权,真-x filename如果该文件存在且对其有执行权,真File1 -nt file2如果file1存在且在file2后修改则值为真(指修改时间)File1 -ot file2如果file1存在且在file2前修改则值为真(指修改时间)字符串:string如果string不为空字符串则值为真-n string如果string字符长度大于0则值为真-z string如果string字符长度等于0则值为真string1=sting2如果string1等于string2则值为真string1!=string2如果string1不等于string2则值为真string2可以是通配符模式。整数比较:-gt大于;-ge大于或等于;-eq等于;-ne不等于; -le小于或等于; -lt小于组合:! condition如果condition为假则为真condition1 a condition2如果两个条件都为真则为真condition1 o condition2如果两个条件有一个为真则为真trap commands signals如果接收到任何的信号signals则执行命令commands.如果完全忽略commands则会重新设置由默认行为处理指定的信号。例:Trap “” 2 ;忽略信号2(中断,通常是ctrl+c)Trap 2 ;恢复中断2Trap “rm f $tmp;exit” 0 1 2 15 ;当shell程序退出,用户退出,按ctrl+c或执行kill时删除$tmp.Typeset options var var设置变量属性-u将变量值中所有字母全部转换成大写-l将变量值中所有字母全部转换成小写-i将变量值设为整数类型.-ix x为相应的进制,表示时为x#变量值,可用于进制转换。例:typeset -i2 vvvv=2echo $vv2#10typeset -i相当于integer-L width在width宽度之内左对齐-R width在width宽度之内右对齐,前面空位用空格填充-Z width在width宽度之内右对齐,变量如果是数字,则前面空位用零填充如果忽略width,将使用赋给这个变量的第一个值的宽度。-x设置一个变量全局。typeset -x相当于export-r设置一个变量具有只读属性,在设置的同时或之前,要先给这些变量赋值。例:typese

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论