我知道在 bash 中,&
符号将命令委托给后台,但它是否也应该兼作特殊的行终止符?
为了举例说明我所指的内容,我在中找到了这一行http://tldp.org/LDP/abs/html/ioredirintro.html
while read a; do echo "FIFO1: $a"; done < /tmp/fifo1 & exec 7> /tmp/fifo1
以上是否相当于..?
while read a; do echo "FIFO1: $a"; done < /tmp/fifo1 &
exec 7> /tmp/fifo1
或者说这两个部分放在一起有什么特殊意义吗?
答案1
while read a; do echo "FIFO1: $a"; done < /tmp/fifo1 & exec 7> /tmp/fifo1
确实相当于
while read a; do echo "FIFO1: $a"; done < /tmp/fifo1 &
exec 7> /tmp/fifo1
&
充当命令分隔符,并将其前面的命令放置在后台。
严格来说,它的作用是命令列表中项目的分隔符:
A
list
是一系列一个或多个管道,由运算符 ';
'、'&
'、'&&
' 或 ' ' 之一分隔,并且可选地以 ' '、' ' 或 a||
之一终止。;
&
newline