Gre*_*hal 30 bash io-redirection exec
那是字面意思,{fd}不是占位符。我有一个执行此操作的脚本,并且不引用任何内容,也不引用其他任何地方的 {fd}。这是有效的 bash 吗?
exec {fd}</dev/watchdog
che*_*ner 40
而不是必须选择一个文件描述符并希望它可用:
exec 4< /dev/watchdog # Was 4 in use? Who knows?
Run Code Online (Sandbox Code Playgroud)
此表示法要求 shell 选择当前未使用的文件描述符,打开文件以读取该描述符,并将编号分配给给定的变量 ( fd)。
$ exec {fd}< /dev/watchdog
$ echo $fd
10
Run Code Online (Sandbox Code Playgroud)
cuo*_*glm 12
表格:
{var}<filename
Run Code Online (Sandbox Code Playgroud)
使外壳打开文件filename以读取并将文件描述符编号存储在变量中var。{var}和重定向运算符之间不允许有空格,并且文件描述符编号将大于或等于10。
此功能是从原ksh(从2006年的版本ksh93r),bash后来在大量复制它bash-4.1-alpha从2010年开始zsh也比早期的变化bash,从zsh 4.3.42007年的。