Я не уверен, что вы имеете в виду, и не уверен, что вам нужно проводить различие: mkdir -- "$1"
создает каталог независимо от того, как вы представляете ему имя.
Чтобы проверить, является ли первый аргументпростое имя каталога без компонента пути (например, foo
, но не foo/bar
или /abso/lute
), проверьте, содержит ли оно /
:
case "$1" in
*/*) echo "contains multiple path components";;
*) echo "no slash, just a base name";;
esac
Чтобы проверить, является ли первый аргументОтносительный путь или абсолютный путь, проверьте, начинается ли он с /
:
case "$1" in
/*) echo "absolute";;
*) echo "relative";;
esac
Если это применимо, рассматриваете ли вы файл или каталог.