1. 程式人生 > >Linux 命令之 set

Linux 命令之 set

set命令可以用來定製shell環境,使用選項“o”來開啟或者關閉選項。例如開啟選項:set -o 選項,關閉選專案:set +o 選項。

例如要開啟vi互動式命令列編輯,則如下:

[[email protected] bin]$ set -o #檢視當前設定情況
allexport      	off
braceexpand    	on
emacs          	off
errexit        	off
errtrace       	off
functrace      	off
hashall        	on
histexpand     	on
history        	on
ignoreeof      	off
interactive-comments	on
keyword        	off
monitor        	on
noclobber      	off
noexec         	off
noglob         	off
nolog          	off
notify         	off
nounset        	off
onecmd         	off
physical       	off
pipefail       	off
posix          	off
privileged     	off
verbose        	off
vi             	off  #關閉中
xtrace         	off
[[email protected] bin]$ set -o vi #把vi選項開啟
[[email protected] bin]$ set -o #檢視當前設定情況
allexport      	off
braceexpand    	on
emacs          	off
errexit        	off
errtrace       	off
functrace      	off
hashall        	on
histexpand     	on
history        	on
ignoreeof      	off
interactive-comments	on
keyword        	off
monitor        	on
noclobber      	off
noexec         	off
noglob         	off
nolog          	off
notify         	off
nounset        	off
onecmd         	off
physical       	off
pipefail       	off
posix          	off
privileged     	off
verbose        	off
vi             	on #已經開啟
xtrace         	off

內建set命令選項

選項名 	快捷開關	含義 
allexport 	-a 	從這個選項中被設定開始就自動標明要輸出的新變數或修改過的變數,直至選項被複位 
braceexpand 	-B	開啟花括號擴充套件,它是一個預設設定 
emacs 	 	使用emacs內建編輯器進行命令列編輯,是一個預設設定 
errexit	-e 	當命令返回一個非零退出狀態(失敗)時退出。讀取初始化檔案時不設定 
histexpand 	-H 	執行歷史替換時開啟!和!!擴充套件,是一個預設設定 
history 	 	開啟命令列歷史、預設為開啟 
ignoreeof	 	禁止用EOF(Ctrl+D)鍵退出shell。必須鍵入exit才能退出。等價於設定shell變數IGNOREEOF=10 
keyword 	-k  	將關鍵字引數放到命令的環境中 
interactive-comments	 	對於互動式shell,把#符後面的文字作為註釋 
monitor	-m 	設定作業控制 
noclobber	-C 	防止檔案在重定向時被重寫 
noexec	-n 	讀命令,但不執行。用來檢查指令碼的語法。互動式執行時不開啟 
noglob 	-d 	禁止用路徑名擴充套件。即關閉萬用字元 
notify	-b 	後臺作業完成時通知使用者 
nounset	-u  	擴充套件一個未設定的變數時顯示一個錯誤資訊 
onecmd	-t 	在讀取和執行命令後退出 
physical	-P  	設定時,在鍵入cd或pwd禁止符號連結。用物理目錄代替 
privileged	-p 	設定後,shell不讀取.profile或ENV檔案,且不從環境繼承shell函式,將自動為setuid指令碼開啟特權 
verbose 	-v 	為除錯開啟verbose模式 
vi	 	使用vi內建編輯器進行命令列編輯 
xtrace	-x 	為除錯開啟echo模式