"nmkdir" in the Bourne shell
Arthur David Olson
ado at elsie.UUCP
Tue Sep 3 07:41:49 AEST 1985
In article <1090 at noscvax.UUCP>, broman at noscvax.UUCP (Vincent P. Broman) writes:
> After seeing Bourne shell and C language versions of a program
> to create sub-sub-sub directories, it seemed to me that the Cshell
> offered the simplest quick implementation, one that only creates
> ONE subprocess. It suffices to let mkdir produce all diagnostics.
Note that the script that followed in the referenced article handles a command
such as
nmkdir a/b/c a/b/d
differently than do the programs it sought to emulate:
Script started on Mon Sep 2 16:36:30 1985
Warning: no access to tty; thus no job control in this shell...
% cd /tmp
% rm -f -r a
% nmkdir.sh a/b/c a/b/d
% rm -f -r a
% nmkdir.csh a/b/c a/b/d
mkdir: cannot make directory a
mkdir: cannot make directory a/b
%
script done on Mon Sep 2 16:37:08 1985
And I suppose I'm obliged to reveal my entry in the contest (with no warranty
as to suitability for any purpose whatsoever). The "set x" and "shift" nonsense
gets around the odd handling of "$@" by sh when $# is zero:
for i
do
case "$i" in
/*) tonow=/ ;;
*) tonow= ;;
esac
set x
IFS=/
for j in $i
do
IFS=" "
tonow="$tonow$j"
test -d "$tonow" || set "$@" "$tonow"
tonow="$tonow/"
done
IFS=" "
case $# in
1) ;;
*) shift ; /bin/mkdir "$@" || exit $?
esac
done
--
Bugs is a Warner Brothers trademark.
--
UUCP: ..decvax!seismo!elsie!ado ARPA: elsie!ado at seismo.ARPA
DEC, VAX and Elsie are Digital Equipment and Borden trademarks
More information about the Comp.sources.bugs
mailing list