readded udpated scripts directory
This commit is contained in:
parent
cd053a412a
commit
f3117c81d9
84 changed files with 3210 additions and 0 deletions
33
scripts/ow_v2.sh
Executable file
33
scripts/ow_v2.sh
Executable file
|
|
@ -0,0 +1,33 @@
|
|||
#!/bin/sh
|
||||
|
||||
# overwrite: copy standard input to output after EOF
|
||||
# version 2. BUG here too
|
||||
|
||||
PATH=/bin:/usr/bin
|
||||
|
||||
case $# in
|
||||
1) ;;
|
||||
*) echo 'Usage: overwrite file' 1>&2; exit 2
|
||||
esac
|
||||
|
||||
new=/tmp/overwr1.$$
|
||||
old=/tmp/overwr2.$$
|
||||
trap 'rm -f $new $old; exit 1' 1 2 15
|
||||
|
||||
cat >$new # collect the input
|
||||
cp $1 $old # save original file
|
||||
|
||||
trap '' 1 2 15 # we are committed; ignore signals
|
||||
cp $new $1
|
||||
|
||||
rm -f $new $old
|
||||
|
||||
# solving the original problem we had in ow_v1.sh:
|
||||
# If a DEL happens berfore the original file is touched, then the temporary files
|
||||
# are removed and the file is left alone. After the backup is made, signals are ignored
|
||||
# so the last cp won't be interrupted -- once the cp starts, overwrite is commited to
|
||||
# changing the original file.
|
||||
|
||||
# However, this implementation is still flawed (see pg 154 of The Unix Programming Environment).
|
||||
|
||||
# If the program providing input to overwrite gets an error, its output will be empty and overwrite will dutifully and reliably destroy the argument file. (see ow.sh for final version)
|
||||
Loading…
Add table
Add a link
Reference in a new issue