2
我對< &和> &令牌有點困惑,我已經在我的問題中包含了一個示例。在我的例子的底部,我不能只使用< 3和> 4作爲貓的參數嗎?我知道你不能,因爲我已經嘗試過,但我不明白爲什麼不呢?我沒有複製文件描述符3和4,我只是試圖重定向輸入和輸出從文件描述符3和4.爲什麼我必須在這兩個令牌中包含&符號?「&>」和「<&」令牌問題
#!/bin/bash
case $# in
0)
exec 3<&0 4<&1
;;
1)
exec 3< $1 4<&1
;;
2)
exec 3< $1 4> $2
;;
*)
echo "bad"
return 1
;;
esac
cat <&3 >&4
exec 3<&- 4<&-
但是,如果我們有3 < $1 and 4> $ 2,這些是文件描述符,我們沒有包括&符號。另外,爲什麼在大於和小於符號後有空格? – James
它們不是現有的文件描述符。它們就是您存儲打開文件名「$ 1」的結果的位置。如果您想要複製現有的fd,則可以使用'<&'。 –