在寫shell腳本時,若是多個命令的輸入或輸出都是同一個文件,而這個文件的路徑和名字都很長,則須要書寫不少次一樣的路徑會很浪費時間,咱們可使用exec命令來關聯一個自定義的文件描述符到一個特定的文件。shell
execl 打開文件描述符的語法格式爲bash
#打開文件outputfile並把它關聯到文件描述符fd #以覆蓋方式打開 exec 3> outputfile #以追加方式打開 exec 4>> outputfile1 #複製一個已經存在的文件描述符 exec 5>& 4 #使用完畢後關閉文件描述符 exec 4>&-
特別注意 fd>, fd>>,以及>&fd的中間都不能有空格。app
#!/bin/bash #exec.sh echo "Open file descriptor 3(overwrite mode), which is associated with file log" exec 3> log echo "Open file descriptor 4(append mode), which is associated with file log_1" exec 4>> log_1 echo "Open file descriptor 5, which is associated with file descriptor 5" exec 5>& 3 echo "sending some data..." echo "exec test log" 1 >& 3 echo "exec test log_1" 1 >& 4 echo "exec test log_2" 1 >& 5 echo "Closing fd 3..." exec 3>&- echo "Closing fd 4..." exec 4>&- echo "Closing fd 5..." exec 5>&- ~