簡體   English   中英

Shell腳本執行程序,其后帶有小於號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM