[英]How does “var=>(…) somecommand” work?
#1
f() {
cat "$1" >"$x"
}
#2
x=>(tr '[:lower:]' '[:upper:]') f <(echo 'hi there')
在#2中,哪個部分首先執行? x=>(tr '[:lower:]' '[:upper:]')
或f <(echo 'hi there')
。 #2是復合化合物還是單個命令?
一個命令可以具有任意數量的var=value
前綴; 這些變量將在該單個命令的持續時間內導出到環境,以后將不存在。 這不是bash特定的,而是POSIX sh標准的一部分。
“首先執行哪個部分?” 不是一個有意義的問題。 首先開始在X中存儲其FIFO的文件名(如果操作系統允許,則為/dev/fd
條目和匿名FIFO)的進程替換,但執行是異步的。 (這就是說,因為進程替代寫入hi there
的輸出被重定向為一個正在運行的tr
輸入,所以具有echo
那個必須阻塞,直到tr
准備讀取其正在寫入的內容為止)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.