Shell

使用“exec 1>ok.log”時,如何在 shell 腳本中將指定的內容輸出到螢幕?

  • August 3, 2016

如下,我只希望命令echo "this is to stdout"輸出到我的螢幕而不是文件ok.log,我該怎麼辦?

我搜尋了execshell命令的用法,但沒有結果,請指教

[root@161 tmp]# bash --version
GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.

[root@161 tmp]# cat 2.sh
#!/bin/bash
exec 1>ok.log
exec 2>error.log
#exist dir
ls /home/
#no exist dir
ls /etca/
#to stdout
echo "this is to stdout"
#other cmds
...

您可以在重定向之前將原始標準輸出保存到臨時文件描述符。在此範例中,我使用文件描述符 3。

exec 3>&1
exec 1>ok.log
echo "This will go to ok.log"
echo "This will go to the original stdout" >&3

引用自:https://serverfault.com/questions/793316