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
それとも、これら2つの部分を組み合わせたときに特別な意味がありますか?
答え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 は、演算子 ''、''、''、または '' のいずれかで区切られ、オプションで ''、''、または a のいずれかで終わる
list
1 つ以上のパイプシーケンスです。;
&
&&
||
;
&
newline