Maybe it could be a security level issue ... Have you ever taken a look at whether the user is running the script without permission to read the directory?
I use this routine in the company:
#!/bin/bash
make-dir(){
sudo mkdir /solinftec
sudo mkdir /solinftec/bin
sudo mkdir /solinftec/log
sudo mkdir /solinftec/sgpa-api
}
make-dir
Also check out how this flag works in your distro, use Fedora, and with me this does not happen.
mkdir --help
Usage: mkdir [OPTION]... DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist.
Mandatory arguments to long options are mandatory for short options too.
-m, --mode=MODE set file mode (as in chmod), not a=rwx - umask
-p, --parents no error if existing, make parent directories as needed
-v, --verbose print a message for each created directory
-Z set SELinux security context of each created directory
to the default type
--context[=CTX] like -Z, or if CTX is specified then set the SELinux
or SMACK security context to CTX
--help display this help and exit
--version output version information and exit
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Full documentation at: <http://www.gnu.org/software/coreutils/mkdir>
or available locally via: info '(coreutils) mkdir invocation'