歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> shell命令的執行

shell命令的執行

日期:2017/3/1 16:31:50   编辑:SHELL編程
shell命令的執行 1.shell命令分為內置命令和外部命令。 內置命令是shell解釋程序內建的,由shell直接執行,不需要派生新的進程 外部命令分為二進制代碼和shell腳本。 2. www.2cto.com (1)為了執行外部的二進制命令,需要一種機制,以允許子進程轉換為將要被執行的命令。Unix/Linux調用exec可以做到這些。它允許一個進程用其他命令的可執行代碼覆蓋自己。二進制代碼需要由磁盤裝入內存中執行。shell解釋程序會調用fork自身的一個拷貝,然後用exec系列函數來執行外部命令,這樣外部命令就取代了當前的fork的子shell. (2)shell腳本的執行與二進制文件略有不同。對於shell腳本來說,shell解釋程序會fork一個子shell程序,子shell程序會檢查腳本的第一行(如#!/bin/bahs),找到用來執行腳本的解釋程序,然後裝入這個解釋程序,由它執行腳本程序。在此解釋程序顯然是當前shell的子進程。如果這個解釋程序與當前使用的shell是同一種shell,比如都是bash,它就是當前shell的子shell,腳本中的命令都是在子shell環境中執行的,不會影響當前shell的環境。
Copyright © Linux教程網 All Rights Reserved