718ce4cb08
$ mkdir -p /tmp/foo ; echo $? 0 $ mkdir -p /tmp/foo ; echo $? 2 mkdir-sh calls 'mkdir' except when the target directory already exists.
44 lines
731 B
Bash
Executable file
44 lines
731 B
Bash
Executable file
#! /bin/sh
|
|
# $NetBSD: mkdir-sh,v 1.1 2004/04/12 14:48:58 heinz Exp $
|
|
#
|
|
# workaround for the broken "mkdir -p" on Unixware
|
|
|
|
MKDIRCMD=mkdir
|
|
cmdargs="$@"
|
|
|
|
# variable 'options' is unused
|
|
for options in p m; do
|
|
if [ $# -lt 1 ]; then
|
|
${MKDIRCMD} ${cmdargs}
|
|
exit $?
|
|
fi
|
|
|
|
case $1 in
|
|
-p) pathopt=-p;
|
|
shift;;
|
|
-m) modeopt="-m ${2}"
|
|
shift;
|
|
if [ $# -ne 0 ] ; then
|
|
shift
|
|
else
|
|
${MKDIRCMD} ${cmdargs}
|
|
exit $?
|
|
fi
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ $# -gt 0 ]; then
|
|
while [ $# -gt 0 ]; do
|
|
if [ -z "${pathopt}" ]; then
|
|
${MKDIRCMD} ${modeopt} -- "$1"
|
|
elif [ ! -d $1 ] ; then
|
|
${MKDIRCMD} ${pathopt} ${modeopt} -- "$1"
|
|
else
|
|
: # directory exists, nothing to do
|
|
fi
|
|
shift
|
|
done
|
|
else
|
|
${MKDIRCMD} ${cmdargs}
|
|
fi
|