команда mkdir не найдена в скрипте bash

Я не знаю, почему я получаю ошибку при запуске этого простого скрипта:

#!/bin/bash

read -p "Please enter directory name: " DIR
read -p "Please enter the path: " PATH
mkdir -p "$PATH/$DIR"
line 7: mkdir: command not found

2 ответов


Не используйте переменную PATH. Эта переменная содержит список каталогов для поиска исполняемых программ. Поскольку вы заменяете его, скрипт не может найти


переменная PATH является важной переменной среды - это то, как программы (например,mkdir) найдены, и вы переписываете его. Вы не должны этого делать, но если вы должны, то:

/bin/mkdir -p "$PATH/$DIR"

но, честно говоря, не используйте верхний регистр! В Bash есть множество зарезервированных или специальных переменных, и если вы не можете запомнить их все, просто помните, что все, кроме одного, находятся в верхнем регистре. Переменные в Bash чувствительны к регистру, как и во всех разумных языках программирования.