仍在學習shell腳本。任何人都可以解釋下面的代碼嗎?外殼重定向到一個整數?
obtainAllVersions()
{
IFS="|"
while read pkg pkgfiles mac <&9
do
rcmd -n $mac hostname 2> /dev/null
done 9< "$1"
}
這是一個修改爲僅顯示幾臺機器的主機名的例子。
9< "$1"
是做什麼用的?另外,<&9
。
我知道<
用於重定向,而$1
是傳遞給函數的第一個參數。我不明白爲什麼9或者其他數字有效,但是一個字母或者字母串沒有。
此外,它似乎像9
和&
(stnd out和stnd err)正在被重定向到read
。是對的嗎?這樣做有意義嗎?
這是[文件描述符](http://en.wikipedia.org/wiki/File_descriptor),您可以將其視爲匿名文件。 [This](http://www.tldp.org/LDP/abs/html/io-redirection.html)向你展示了你可以用bash做些什麼。 – phs