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