Книга: UNIX — универсальная среда программирования

3.8.37 overwrite3

3.8.37 overwrite3
# overwrite: copy standard input to output after EOF
# final version
opath=$PATH
PATH=/bin:/usr/bin
case $# in
0|1) echo 'Usage: overwrite file cmd [args]' 1>&2; exit 2
esac
file=$1; shift
new=/tmp/overwr1.$$; old=/tmp/overwr2.$$
trap 'rm -f $new $old; exit 1' 1 2 15 # clean up files
if PATH=$opath >$new # collect input
then
 cp $file $old # save original file
 trap '' 1 2 15 # we are committed; ignore signals
 cp $new $file
else
 echo "overwrite: $1 failed, $file unchanged" 1>&2
 exit 1
fi
rm -f $new $old

Оглавление книги


Генерация: 0.083. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз