Io-Redirection
用 ksh 打開超過 10 個文件描述符
打開文件以進行寫入和使用其文件描述符的 shell 語法是:
exec 3>output.log
使用 bash 和 zsh 您還可以編寫:
exec 13>output.log
因此,稍後在您的腳本中,您可以像這樣重定向輸出:
generate-partx >&3 generate-partx >&13
並關閉它們:
exec 3>&- exec 13>&-
原始的 ksh(測試 88 和 93)似乎只支持具有該語法的文件描述符編號 0 到 9。
當然,有人可能會爭辯說 10 個打開的文件描述符應該對每個人都足夠了和/或沒有人不再使用 ksh。
但有時它不是,而你是。
因此,我的問題是:如何在 ksh 腳本中打開超過 10 個文件描述符?
在
ksh
中,您只能將單個數字用於顯式文件描述符。使用ksh93r
及以上,您可以使用以下形式打開 10 多個文件描述符:{var}>filename
ksh
將選擇大於或等於 10 的可用文件描述符,將文件描述符編號儲存在變數中var
:$ exec {var1}>/tmp/test1 $ echo "$var1" 10 $ exec {var2}>/tmp/test2 $ echo "$var2" 11