exec是shell的一個built-in command,一般用來execute某個command,然後退出該command,注意這裏不是fork一個子shell,然後用該子shell來執行command,而是在當前shell上直接執行該command,所以command退出後,該shell也就結束了。
exec的另外一個功能是打開和關閉文件描述符,文件符range是0-9.
因爲0是標準輸入,1是標準輸出,2是標準錯誤,所以沒有特別緣由,我們使用3-9.
舉例:
- exec 3</tmp/1.txt
以只讀方式文件打開/tmp/1.txt文件,文件描述符對應爲3 - exec 3>/tmp/1.txt
以寫方式打開/tmp/1.txt,文件描述符對應爲3 - exec 3<>/tmp/1.txt
以讀寫方式打開/tmp/1.txt,文件描述符對應爲3 - exec 3<&-
關閉文件描述符3
附錄:常用文件重定向命令
command > filename 把標準輸出重定向到一個新文件中
command >> filename 把標準輸出重定向到一個文件中(追加)
command 1 > fielname 把標準輸出重定向到一個文件中
command > filename 2>&1 把標準輸出和標準錯誤一起重定向到一個文件中
command 2 > filename 把標準錯誤重定向到一個文件中
command 2 >> filename 把標準輸出重定向到一個文件中(追加)
command >> filename 2>&1 把標準輸出和標準錯誤一起重定向到一個文件中(追加)
command < filename >filename2 把command命令以filename文件作爲標準輸入,以filename2文件作爲標準輸出
command < filename 把command命令以filename文件作爲標準輸入
command << delimiter 把從標準輸入中讀入,直至遇到delimiter分界符
command <&m 把文件描述符m作爲標準輸入
command >&m 把標準輸出重定向到文件描述符m中
command &m<&- 關閉文件描述符m