Описание тега airplane-mode
Я использую Баш 4.3.48(1) и я побежал следующую команду рисунок на тестирование ВПС машины:
РМ -РФ ${ДРТ}/${ПМВ}*
Эта команда была удалена вся операционных систем (Ubuntu). Это было видно по выполнении КД /
который ничего не вернул, но следующее сообщение об ошибке:
Баш: компакт-диск /: нет такого файла или каталога
В более глубокий взгляд, это произошло потому, что обе переменные в исходной команде выше, не были объявлены:
Я создал файл с именем
~/repoName/assignments_variables.sh
которое содержит список экспортированных переменных (в том числеДРТ
иПМВ
).Вместо запущена
источник /и т. Д./Баш.bashrc следующее
, Я побежал/и т. Д./Баш.bashrc следующее
, что было неправильно, поскольку этот файл является только для текущей сессии (хотя он может быть использован, чтобы впоследствии запускать файлы, которые сами по себе выполнять данные в подсессии).
Теперь это для меня ясно, что плохой путь-это общие причины для этой проблемы, я хотел бы погрузиться немного глубже и спросить:
Почему РМ -РФ
проигнорировал неправильная переменная-расширения и продолжил движение в сторону /*
? Я знаю, что РМ -РФ
следует удалять Дир только если он ее найдет, поэтому не стоит полагаться на части пути в несуществующий каталог (как /*
, что вызвало удаление из операционной системы). Как я могу улучшить РМ -РФ
команду, чтобы покрыть возможные аналогичные случаи плохой путь (из-за неправильной переменной разложения) в будущем?
Есть некоторые директивы Баш, чтобы убедиться, что Баш не будет расширяться пустые переменные (пока не отменить эту директиву)?
Позвольте мне подчеркнуть: я обычно работаю не только с резервными копиями, но с двойной резервных копий. Это было очень тестовой среде с Х3 резервное копирование в фоновом режиме.