Bourne Shell及shell编程 4

来源:百度文库 编辑:神马文学网 时间:2024/06/03 15:05:19
4. Shell的定制  通常使用shell的定制来控制用户自己的环境比如改变shell的外观(提
示符)以及增强  自己的命令  (1)通常环境变量来定制shell  通常改变环境变量可以定制shell的工作环境shell在处理信息时会参
考这些环境变量  改变环境变量的值在一定程度上改变shell的操作方式比如改变命令
行提示符   .使用IFS增加命令行分隔符  默认状态下shell的分隔符为空格制表符及换行符但可以通过改变
IFS的值加入自 己  的分隔符如下所示    $ IFS=":"  $ echo:Hello:my:Friend  Hello my Friend  (2)加入自己的命令及函数  如下程序  #Directory and Prompt change program  #Syntax: chdir directory   if [ ! -d "$1" ]  then  echo "$1 is not a directory"  exit 1  fi   cd $1  PS1=`pwd`$  export PS1   $ chdir /usr/home/teresa  $
  但此程序在执行时系统提示符并不会改变因为此程序是在子shell中执
行的因此其变 量 对当前shell并无影响要想对当前shell起作用最好是将此作为函数写在
自己的.profile 中 或建立自己的个人函数文件.persfuncs   #Personal function file persfuncs   chdir()  {  #Directory and Prompt change program  #Syntax: chdir directory  if [ ! -d "$1" ]  then  echo "$1 is not a directory"  exit 1  fi   cd $1  PS1=`pwd`$  export PS1;  }   再执行  $ . .persfuncs  $ chdir temp  /home/hbbwork/temp$   也可在自己的.profile文件中用 . .persfuncs调用.persfuncs.   说明在bash/tcsh中已经使用别名相对而言别名比此方法更为方便
  5. 有关shell的专门讨论 (1)shell程序的调试  切记程序员人总是会犯错误的而计算机是不会错的  使用-x进行跟踪执行执行并显示每一条指令  (2)命令组
 用小括号将一组命令括起来则这些命令会由子shell来完成而{command_list;}则在 当  前shell中执行这两者的主要区别在于其对shell变量的影响子shell执行的命令不会  影响当前shell中的变量   $ NUMBER=2  $ (A=2;B=2;NUMBER=`expr $A + $B`; echo $NUMBER)  4  $ echo $NUMBER  2  $ { A=2;B=2;NUMBER=`expr $A + $B`; echo $NUMBER; }  4  $ echo $NUMBER  4   总结  在本章中讲述了Bourne Shell的基本知识,使用shell变量shell script
基础这些概 念  对于理解学习Korn Shell, csh以及其他script编程都是非常有用的   很多OS都有不少语言及一些script功能但很少有象UNIX SHELL这
样灵活强大的script 脚  本语言能力   对于系统管理员或程序员来说熟练地使用shell script将对日常工作(系
统维护及管理 )  非常有用如果你想作一个合格的系统管理员强烈建议你进一步深入
的了解和使用  shell.   另外对于系统管理员来说PERL也是一个必不可少的script编程语
言尤其是对于处 理  文本格式的各种文件PERL具有shell, awk, sed, grep等的功能但
使用起来更为灵活   功能也更强大大家可以参考Perl By Examples"来学习和使用PERL 完