TCSHshell可以使使用者使用shell組態變數和特徵配置自己的shell.也可以使用set命令設定特徵.TCSH也有註冊,注消以及何時進入TCSHshell的設定檔.
一、TCSH shell 特徵
TCSH有幾個特徵,允許控制不同的shell操作的方法.TCSH shell特徵不僅包括許多它自己的特徵,而且還包括KSH/BASH shell中的特徵,如,TCSH中有一個noclobber,防止重新導向重寫檔案,一些更常用的特徵為:echo,noclobber,ignoreeof和noglob.通過定義和取消定義與該特性相關的變數,開啟/關閉TCSH shell特徵,為每個特徵命名變數.
例如,通過定義noclobber變數,開啟noclobber特徵.使用set命令定義變數,而使用unset命令取消定義變數.為了運行noclobber特徵,使用set noclobber,為了關閉它,使用unset noclobber.如:
set variable 定義變數
unset variable 取消變數
由於這些變數常用於開啟/關閉特徵,所以有時也被叫做雙態切換.
1、echo
在echo被執行之前,設定echo啟動顯示命令的特徵;
set echo 開啟echo特徵
unset echo 關閉echo特徵
2、ignoreeof
設定ignoreeof啟動防止使用者使用CTRL+D注消使用者shell的特徵,它用於防止突發性的注消操作,如果此特徵關閉,可以用CTRL+D注消過程.由於在標準輸入中CTRL+D是結束使用者輸入的操作,所以很容易造成突發注消shell進程.因此,ignoreeof特徵就能防止這種突發的注消,當此特徵被設定後,使用者必須用logout命令明確注消.
3、noclobber
設定noclobber啟動預防現有檔案不被重新導向輸出的特徵,藉助此特徵,如果把輸出重新導向到已經存在的檔案中,就不用標準的輸出重寫檔案.原檔案被儲存.也許會發生這種情況:把現有檔案名稱用作儲存被重新導向的輸入的檔案名稱.因此,noclobber特徵使使用者不會意外的重寫原檔案.
%set noclobber
%cat oldfile > newfile
newfile: file exist
有時,使用者想用重新導向輸出重寫某個檔案,那麼就可在重新導向符號操作符之後放置驚歎號!實現重寫操作.這將重寫noclobber特性,用標準的輸出代替檔案內容.
%cat oldfile >!newfile
4、noglob
設定noglob使某特性有效,該特徵禁止使用者shell中的某些字元.字元 * ? [ ] ~將不再擴充為匹配的檔案名稱.如:
%set noglob
%ls myfile?*
myfile?*
5、附錄:常用的TCSH shell特徵;
特徵 功能
set 開啟shell特徵
unset 關閉shell特徵
echo 執行命令前顯示該命令
ignoreeof 禁止用CTRL+D注消
noclobber 不必通過重新定向重寫檔案
noglob 禁止特殊字元用於檔案名稱擴充:* ? ~ [ ]
notify 當完成背景工作時立即通知使用者
verbose 曆史命令引用後顯示命令