重定向到一个奇怪的文件描述符号

Ben*_*Ben 2 ksh

我今天遇到了一个正在运行的ksh脚本[interactive],在那里我看到了下面的声明.

printf "Enter the release no. : " >&5
Run Code Online (Sandbox Code Playgroud)

我想知道>&5作者什么时候可以使用或者说什么也没用>&1.

有人能说清楚这一点吗?

提前致谢

- 贝尼尔

jit*_*ter 5

他可能已经重新映射了文件描述符,或者使用文件描述符5来表示特殊的东西

例如,仅暂时将错误重定向到 /dev/null

#errors produced here go to stderr
....
#now save stderr to fd 5
exec 5>&2
#redirect to /dev/null
exec 2>/dev/null
...
# do stuff which errors are discarded
......
# restore stderr from fd 5
exec 2>&5
Run Code Online (Sandbox Code Playgroud)

因此,请检查更多脚本之前的功能

  • +1是一个有用的,真实世界的例子.如果您花时间学习细微差别,重定向文件描述符是可以执行魔术的功能之一. (2认同)