shell 中的 exec 兩種用法:
1.exec 命令 ;命令代替shell程式,命令退出,shell 退出;比如 exec ls
2.exec 檔案重定向,可以將檔案的重定向就看為是shell程式的檔案重定向 比如 exec 5shell的內建命令exec將並不啟動新的shell,而是用要被執行命令替換當前的shell程序,並且將老程序的環境清理掉,而且exec命令後的其它命令將不再執行。
因此,如果你在乙個shell裡面,執行exec ls那麼,當列出了當前目錄後,這個shell就自己退出了,因為這個shell程序已被替換為僅僅執行ls命令的乙個程序,執行結束自然也就退出了。為了避免這個影響我們的使用,一般將exec命令放到乙個shell指令碼裡面,用主指令碼呼叫這個指令碼,呼叫點處可以用bash a.sh,(a.sh就是存放該命令的指令碼),這樣會為a.sh建立乙個sub shell去執行,當執行到exec後,該子指令碼程序就被替換成了相應的exec的命令。
source命令或者".",不會為指令碼新建shell,而只是將指令碼包含的命令在當前shell執行。
不過,要注意乙個例外,當exec命令來對檔案描述符操作的時候,就不會替換shell,而且操作完成後,還會繼續執行接下來的命令。
exec 3
另外,這個命令還可以作為find命令的乙個選項,如下所示:
(1)在當前目錄下(包含子目錄),查詢所有txt檔案並找出含有字串"bin"的行
find ./ -name "*.txt" -exec grep "bin" {} \;
(2)在當前目錄下(包含子目錄),刪除所有txt檔案
Linux下的exec函式
在程序間的程式替換 用fork建立子程序後執行的是和父程序相同的程式 但有可能執 行不同的 分 支 子程序往往要呼叫一種exec函式以執 行另 乙個程式。當程序呼叫一種exec函式時,該程序的使用者空間 和資料完全被新程式替換,從新程式的啟動例程開始執行。呼叫exec並後該程序的id並未改變。不建立...
linux下exec函式族
1.1 exec函式族相關函式 include extern char environ int execl const char path,const char arg,char null int execlp const char file,const char arg,char null int...
Linux下使用exec命令將檔案與檔案描述符關聯
在shell指令碼下exec為系統自帶的指令碼命令,其作用是用來執行其他程式 語法格式 exec 選項 引數 選項 c 在當前環境下執行命令,即在當前shell指令碼下執行,而不是開啟乙個新的shell引數 要執行的指令碼示列 exec c echo linux輸出 linux其效果與 echo l...