一篇對大家學(xué)習(xí),理解linux很有用的文章
$ set –o noglob
$ ls answer?
answer?
子shell與export命令
用戶登錄到Linux系統(tǒng)后,系統(tǒng)將啟動一個用戶shell。在這個shell中,可以使用shell命令或聲明變量,也可以創(chuàng)建并運行shell腳本程序。運行shell腳本程序時,系統(tǒng)將創(chuàng)建一個子shell。此時,系統(tǒng)中將有兩個shell,一個是登錄時系統(tǒng)啟動的shell,另一個是系統(tǒng)為運行腳本程序創(chuàng)建的shell。當(dāng)一個腳本程序運行完畢,它的腳本shell將終止,可以返回到執(zhí)行該腳本之前的shell。從這種意義上來說,用戶可以有許多shell,每個shell都是由某個shell(稱為父shell)派生的。
在子shell中定義的變量只在該子shell內(nèi)有效。如果在一個shell腳本程序中定義了一個變量,當(dāng)該腳本程序運行時,這個定義的變量只是該腳本程序內(nèi)的一個局部變量,其他的shell不能引用它,要使某個變量的值可以在其他shell中被改變,可以使用export命令對已定義的變量進行輸出。export命令將使系統(tǒng)在創(chuàng)建每一個新的shell時定義這個變量的一個拷貝。這個過程稱之為變量輸出。
[例]在本例中,變量myfile是在dispfile腳本程序中定義的。然后用export命令將變量myfile輸出至任何子shell,例如當(dāng)執(zhí)行printfile腳本程序時產(chǎn)生的子shell。
dispfile腳本程序清單:
/**************begin dispfile**************/
myfile=”List”
export myfile
echo “Displaying $myfile”
pr –t –n $myfile
printfile
/**************end dispfile***************/
printfile腳本程序清單:
/**************begin printfile**************/
echo “Printing $myfile”
lpr $myfile
/**************end printfile**************/
$dispfile
Displaying List
1 screen
2 modem
3 paper
Printing List
$
定制Bash
在本節(jié)中已經(jīng)介紹了很多定制Bash的方法,但是迄今為止,這些方法都只是對當(dāng)前Bash對話有用。只要用戶退出登錄,所做的一切改變都會丟失。所以應(yīng)該在Bash的初始化文件中做永久性的修改。
用戶可以將每次啟動Bash所需要執(zhí)行的命令放入初始化文件中,最常見的命令就是alias命令和變量定義兩種。系統(tǒng)中的每個用戶在其主目錄中都有一個.bash_profile文件,Bash每次啟動時都將讀取該文件,其中包含的所有命令都將被執(zhí)行。
下面便是默認(rèn).bash_profile文件的代碼:
#.bash_profile
#Get the aliases and functions
if [-f ~/.bashrc ];then
.~/.bashrc
fi
#User specific environment and startup programs
PATH=$PATH:$HOME/bin
ENV=$HOME/.bashrc
USERNAME=””
Export USERNAME ENV PATH
評論