[英]Shell script exec with less then sign
有人可以向我解釋這行代碼在shell腳本中會做什么嗎?
exec 3<&0 </dev/null
我嘗試使用谷歌搜索,但無法深入了解細節。 我相信3是新的文件描述符,0是STDIN? 並且不確定最后一個/ dev / null是做什么的,或者不確定exec的目的還是“ <”符號。
沒有命令參數的exec
更改腳本其余部分的I / O重定向。
3<&0
將當前的stdin描述符復制到文件描述符3。
</dev/null
將stdin重定向到/dev/null
,這是一個不包含任何內容的特殊設備(讀取它會立即返回EOF,寫入它會丟棄數據)。
所有這些操作的目的是將標准輸入重定向到空設備,但將其保存在FD 3上,以便以后可以還原。 因此,在腳本后面的某個地方,您應該看到:
exec <&3 3<&-
這會將FD 3復制回stdin,然后關閉FD 3。
重定向語法在Bash手冊的“ 重定向”部分中進行了描述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.