4. Shell的定制
通常使用shell的定制來控制用戶自己的環(huán)境比如改變shell的外觀(提
示符)以及增強(qiáng)
自己的命令
(1)通常環(huán)境變量來定制shell
通常改變環(huán)境變量可以定制shell的工作環(huán)境shell在處理信息時(shí)會(huì)參
考這些環(huán)境變量
改變環(huán)境變量的值在一定程度上改變shell的操作方式比如改變命令
行提示符
.使用IFS增加命令行分隔符
默認(rèn)狀態(tài)下shell的分隔符為空格制表符及換行符但可以通過改變
IFS的值加入自
己
的分隔符如下所示
$ IFS=":"
$ echo:Hello:my:Friend
Hello my Friend
(2)加入自己的命令及函數(shù)
如下程序
#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
$
但此程序在執(zhí)行時(shí)系統(tǒng)提示符并不會(huì)改變因?yàn)榇顺绦蚴窃谧觭hell中執(zhí)
行的因此其變
量
對(duì)當(dāng)前shell并無影響要想對(duì)當(dāng)前shell起作用最好是將此作為函數(shù)寫在
自己的.profile
中
或建立自己的個(gè)人函數(shù)文件.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;
}
再執(zhí)行
$ . .persfuncs
$ chdir temp
/home/hbbwork/temp$
也可在自己的.profile文件中用 . .persfuncs調(diào)用.persfuncs.
說明在bash/tcsh中已經(jīng)使用別名相對(duì)而言別名比此方法更為方便
5. 有關(guān)shell的專門討論
(1)shell程序的調(diào)試
切記程序員人總是會(huì)犯錯(cuò)誤的而計(jì)算機(jī)是不會(huì)錯(cuò)的
使用-x進(jìn)行跟蹤執(zhí)行執(zhí)行并顯示每一條指令
(2)命令組
用小括號(hào)將一組命令括起來則這些命令會(huì)由子shell來完成而{command_list;}則在
當(dāng)
前shell中執(zhí)行這兩者的主要區(qū)別在于其對(duì)shell變量的影響子shell執(zhí)行的命令不會(huì)
影響當(dāng)前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
總結(jié)
在本章中講述了Bourne Shell的基本知識(shí),使用shell變量shell script
基礎(chǔ)這些概
念
對(duì)于理解學(xué)習(xí)Korn Shell, csh以及其他script編程都是非常有用的
很多OS都有不少語言及一些script功能但很少有象UNIX SHELL這
樣靈活強(qiáng)大的script
腳
本語言能力
對(duì)于系統(tǒng)管理員或程序員來說熟練地使用shell script將對(duì)日常工作(系
統(tǒng)維護(hù)及管理
)
非常有用如果你想作一個(gè)合格的系統(tǒng)管理員強(qiáng)烈建議你進(jìn)一步深入
的了解和使用
shell.
另外對(duì)于系統(tǒng)管理員來說PERL也是一個(gè)必不可少的script編程語
言尤其是對(duì)于處
理
文本格式的各種文件PERL具有shell, awk, sed, grep等的功能但
使用起來更為靈活
功能也更強(qiáng)大大家可以參考Perl By Examples"來學(xué)習(xí)和使用PERL
完