linux shell exec 關聯文件描述符

在寫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>&-
~                 
相關文章
相關標籤/搜索