"exec 3>& - "中的减号含义是什么?我如何使用它?

Red*_*dro 6 bash terminal redirect stdout sh

我经常无法弄清楚某些语言结构,因为他们不会在谷歌搜索或使用它们时注册.通过一些实验,通常很容易弄明白,但我没有得到这个.

我经常看到类似2>&13>&-在bash脚本中的东西.我知道这是某种重定向.1是stdout,2是stderror.3可能是定制的.但减号是多少?

另外,我有一个脚本,其输出我想记录,但也想在屏幕上看到.我用exec > >(tee $LOGFILE); exec 2>&1它.有用.但有时当我对这个脚本进行bashtrap时,我不能再输入提示了.之后隐藏输出Ctrl+C.我可以使用自定义渠道和减号来解决此问题,还是不相关?

ban*_*nuj 6

  1. 2>&1 意味着stderr被重定向到stdout
  2. 3>&- 表示打开用于写入的文件描述符3(与stdout相同)已关闭.

您可以在此处查看更多重定向示例

  1. 至于问题3,我认为是一个很好的联系.