變量的類型:
1).局部變量 局部變量在腳本或命令中定義,僅在當前shell實例中有效,其他shell啟動的程序
不能訪問局部變量
2).環境變量 所有的程序,包括shell啟動的程序,都能訪問環境變量,有些程序需要環境變量來保證其正常運行
3).shell變量 shell變量是由shell程序設置的特殊變量.shell變量中有一部分是環境變量,有一部分是局部變量.
shell(這里指bash)的初始化過程是這樣的:
1.bash 檢查文件/etc/PRofile 是否存在
2. 如果存在,bash 就讀取該文件,否則,跳過
3.bash 檢查主目錄下的文件.bash_profile 是否存在。
4. 如果存在,bash 就讀取該文件,否則,跳過
5.bash 檢查主目錄下的.bash_login 是否存在。
6. 如果存在,bash 就讀取該文件,否則,跳過
7.bash 檢查主目錄下的文件.profile 是否存在
8. 如果存在, bash 就讀取該文件,否則,跳過。
這些步驟都執行完后,就出現提示符了, ksh 默認提示符是 $.
(1)讀取用戶由鍵盤輸入的命令行。(2)分析命令,以命令名作為文件名,并將其它參數改造為系統調用execve( )內部處理所要求的形式。(3)終端進程調用fork( )建立一個子進程。(4)終端進程本身用系統調用wait4( )來等待子進程完成(如果是后臺命令,則不等待)。當子進程運行時調用execve( ),子進程根據文件名(即命令名)到目錄中查找有關文件(這是命令解釋程序構成的文件),將它調入內存,執行這個程序(解釋這條命令)。 (5)如果命令末尾有&號(后臺命令符號),則終端進程不用系統調用wait4( )等待,立即發提示符,讓用戶輸入下一個命令,轉⑴。如果命令末尾沒有&號,則終端進程要一直等待,當子進程(即運行命令的進程)完成處理后終止,向父進程(終端進程)報告,此時終端進程醒來,在做必要的判別等工作后,終端進程發提示符,讓用戶輸入新的命令,重復上述處理過程。
新聞熱點
疑難解答