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
完
|
|