Это для скрипта установки bash.Скрипт foo.sh принимает "DIRECTORY" в качестве аргумента.Скажем, существует каталог <$HOME>/TEST/TEST_1A/TEST_2A/TEST_3
и другой каталог <$HOME>/TEST/TEST_1B/TEST_2B/TEST_3
.
Сценарий: кратко foo.sh.
DIR='find $HOME -type d -name $1 | head 1'
if [ DIR is set to a directory ]
then
rm -rf $DIR
fi
exit 0
Использование: foo.sh TEST_3
Теперь из скрипта можно удалить только <$HOME>/TEST/TEST_1A/TEST_2A/TEST_3
.Чтобы удалить <$HOME>/TEST/TEST_1B/TEST_2B/TEST_3
, мне нужно использовать reg exp в моей команде find для точной настройки удаления, чтобы разрешить конфликт каталогов.
Изменена часть поиска скрипта выше, как показано ниже
DIR='find $HOME -type d -regexp $1 | head 1'
Новое использование: foo.sh TEST_2B/TEST_3
Но команда «найти» НЕ ПОЛУЧАЕТ получить DIR
значение <$HOME>/TEST/TEST_1B/TEST_2B/TEST_3
и вместо этого возвращает пустое, и в результате DIR
пусто, и я никогда не смогукогда-либо удалить <$HOME>/TEST/TEST_1B/TEST_2B/TEST_3
Как мне изменить скрипт, чтобы find мог воздействовать как на имя каталога, так и на путь к каталогу, тоже без проблем.На самом деле, некоторые пользователи могут указывать частичный путь к каталогу в качестве аргумента «foo.sh».Я ожидаю, что "foo.sh" будет работать, даже в таких случаях