Bash
exec 1> >(logger -s -t tagname) 2>&1 中的 1> 的目的是什麼?
我剛剛跌跌撞撞
exec 1> >(logger -s -t $(basename $0)) 2>&1
用於將目前腳本的輸出重定向到系統記錄器(如果您從未見過,但有興趣查看https://stackoverflow.com/questions/8888251/understanding-bash-exec-12-命令來拓寬你的 shell 知識)。
我想知道為什麼這
1>
是必要的。這似乎是必要的,因為exec >(logger -s -t test) 2>&1
失敗是由於bash: /dev/fd/63: Permission denied bash: exec: /dev/fd/63: cannot execute: Permission denied
然而,省略
1>
是我直覺上會做的事情,因為exec >[some redirection target]
根據上面連結的問題,重定向已經足夠了。2>&1
然後像往常一樣將標準錯誤重定向到標準輸出。我正在使用 bash 4.4.19。
它是必要的(額外的
>
,而不是1
,1>
可以簡單地寫成>
)。>(...)
程序替換將擴展為/dev/fd/13
(文件名),然後>
將標準輸出重定向到其中。從此> >(...)
。