Команды после чтения в скрипте оболочки выдают ошибку

Я создаю сценарий оболочки, чтобы взять путь ввода от пользователя и скопировать определенный файл по введенному пути. Ниже приведен простой скрипт для восстановления поврежденного файла и копирования его по требуемому пути, указанному пользователем.

FILE=$1
bzip2recover $FILE
находить. -name 'rec*bz2' -exec sh -c 'bzip2 -t "$0" 2>/dev/null || rm -f $0' {} \;
cat rec* > $FILE
rm -f rec*
read -p "Введите путь для копирования:" PATH
cp $FILE $PATH
rm -f $FILE
строки после read выдает ошибку как cp : command not found а также rm : command not found, В чем может быть проблема?

1 ответ

Решение

Вы перезаписываете важную системную переменную PATH с вводом пользователя. PATH обычно указывает на папки с исполняемыми файлами. После того, как вы перезаписали его с помощью пользовательского ввода, система больше не сможет найти исполняемые файлы.

Используйте другое имя переменной.

Другие вопросы по тегам