Назад | Перейти на главную страницу

При использовании «exec 1> ok.log» как я могу вывести указанное содержимое на экран в сценарии оболочки?

Как следует, мне нужна только команда echo "this is to stdout" вывод на мой экран, а не в файл ok.log, Как я могу сделать?
Я ищу использование 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
...

Вы можете сохранить исходный стандартный вывод во временном файловом дескрипторе, прежде чем перенаправить его. В этом примере я использую файловый дескриптор 3.

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