在腳本中重定向輸入和輸出時(shí),并不局限于3個(gè)默認(rèn)的文件描述符。南昌網(wǎng)絡(luò)公司-百恒網(wǎng)絡(luò)曾經(jīng)跟大家介紹過(guò),在shell 中可以有9個(gè)打開(kāi)的文件描述符,其他6個(gè)從3-8的文件描述符均可用作輸入或輸出重定向。你可以將這些文件描述符中的任意一個(gè)分配給文件,然后在腳本中使用它們。那么在shell腳本中如何創(chuàng)建輸出文件描述符?今天百恒網(wǎng)絡(luò)就來(lái)為大家簡(jiǎn)單介紹一下。
可以用exec命令來(lái)給輸出分配文件描述符。和標(biāo)準(zhǔn)的文件描述符一樣,一旦將另一個(gè)文件描述符分配給一個(gè)文件,這個(gè)重定向就會(huì)一直有效,直到你重新分配。下面百恒為大家介紹一個(gè)在腳本中使用其他文件描述符的例子,供大家參考!
$ cat test13
#!/bin/bash
# using an alternative file descriptor
exec 3>test13out
echo "This should display on the monitor"
echo "and this should be stored in the file" >&3
echo "Then this should be back on the monitor"
$ ./test13
This should display on the monitor
Then this should be back on the monitor
$ cat test13out
and this should be stored in the file
$
這個(gè)腳本用exec命令將文件描述符3重定向到另一個(gè)文件。當(dāng)腳本執(zhí)行echo語(yǔ)句時(shí),輸出內(nèi)容會(huì)像預(yù)想中那樣顯示在STDOUT上。但你重定向到文件描述符3的那行echo語(yǔ)句的輸出卻進(jìn)入了另一個(gè)文件。這樣你就可以在顯示器上保持正常的輸出,而將特定信息重定向到文件中。
也可以不用創(chuàng)建新文件,而是使用exec命令來(lái)將輸出追加到現(xiàn)有文件中。
exec 3>>test13out
現(xiàn)在輸出會(huì)被追加到test13out文件,而不是創(chuàng)建一個(gè)新文件。
看了以上操作,大家應(yīng)該覺(jué)得都很簡(jiǎn)單吧。是的,的確很簡(jiǎn)單,而且也很實(shí)用,大家可以自己操作一下!
關(guān)于創(chuàng)建輸出文件描述符的方法,本公司就先為大家介紹到這里了,如有還有哪些不太明白的地方,隨時(shí)可來(lái)電和我們聯(lián)系,我們專(zhuān)業(yè)為您解決。此外,百恒網(wǎng)絡(luò)專(zhuān)業(yè)為您提供南昌物聯(lián)網(wǎng)開(kāi)發(fā)、APP開(kāi)發(fā)、微信開(kāi)發(fā)等服務(wù),如有需要,我們隨時(shí)為您效勞!