Вывод одновременно в stdout и файл из шелла

#!/bin/ksh

# save stdout to fd5
exec 5>&1
# make pipe for output
npipe=test.pipe
mknod $npipe p
# when exiting remove pipe
trap "rm -f $npipe" EXIT
# tee reads from pipe in background and outputs everything in file and in the stdout
tee <$npipe temp.tmp &
# close stdout and redirect it to pipe
exec 1>&-
exec 1>$npipe

# script echo testtest
df
grep root /etc/passwd | awk -F: '{print $1}'

# restore stdout
exec 1>&5 5>&-

 

Оставьте комментарий

Мысль на тему “Вывод одновременно в stdout и файл из шелла”