天天看點

74、shell 小知識兩點,提示符,特殊變量,export

1、關于提示符,特殊變量

1)Bash有兩級提示符。第一級提示符是經常見到的Bash在等待指令輸入時的情況,預設值是$符号,PS1為變量值。第二級提示符是當Bash為執行某條指令需要使用者輸入更多資訊時顯示的,預設為>,變量值為PS2。

2)Bash有一些特殊變量,能控制shell以不同的方式工作。例如,變量noclobber能防止在重定向輸出時意外地覆寫一個檔案。通過set指令可以設定noclobber變量的有效或無效。set指令有兩個參數:一個是指定變量開(on)或關(off)的選項,一個是特殊變量的變量名。要使某一特殊變量開(有效),用-o選項,要使其關(無效),用+o選項。例如:

$ set -o noclobber // 使noclobber變量開

$ set +o noclobber // 使noclobber變量關

3)ignoreeof變量用來禁止使用ctrl+d來退出shell(ctrl+d不僅用來退出shell,而且可以終止使用者直接輸往标準輸出上的輸入。

$ set -o ignoreeof

4)noclobber變量可以在重定向輸出時保護已存在的檔案,防止被意外地覆寫。

5)設定noglob變量後,shell将不擴充檔案名中一些特殊的字元或字元串。如字元*、?、[]等将不再作為通配符。

2、關于export

    使用者登入到Linux系統後,系統将啟動一個使用者shell。在這個shell中,可以使用shell指令或聲明變量,也可以建立并運作shell腳本程式。運作shell腳本程式時,系統将建立一個子shell。此時,系統中将有兩個shell,一個是登入時系統啟動的shell,另一個是系統為運作腳本程式建立的shell。 當一個腳本程式運作完畢,它的腳本shell将終止,可以傳回到執行該腳本之前的shell。從這種意義上來說,使用者可以有許多 shell,每個shell都是由某個shell(稱為父shell)派生的。

    在子shell中定義的變量隻在該子shell内有效 。如果在一個shell腳本程式中定義了一個變量,當該腳本程式運作時,這個定義的變量隻是該腳本程式内的一個局部變量,其他的shell不能引用它,要使某個變量的值可以在其他shell中被改變,可以使用export指令對已定義的變量進行輸出。export指令将使系統在建立每一個新的shell時定義這個變量的一個拷貝。這個過程稱之為變量輸出。

3、使用者可以将每次啟動Bash所需要執行的指令放入初始化檔案中,最常見的指令就是alias指令和變量定義兩種。系統中的每個使用者在其主目錄中都有個.bash_profile檔案,Bash每次啟動時都将讀取該檔案,其中包含的所有指令都将被執行。

參考

繼續閱讀