如下,我只想将命令echo "this is to stdout"
输出到屏幕上而不是文件ok.log
,我该怎么办?
我搜索了 shell 命令的用法exec
,但没有结果,请指教
[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
...
答案1
您可以在重定向之前将原始 stdout 保存到临时文件描述符中。在此示例中,我使用文件描述符 3。
exec 3>&1
exec 1>ok.log
echo "This will go to ok.log"
echo "This will go to the original stdout" >&3