Я пытаюсь написать сценарий BASH, который рекурсивно удалит все файлы в каталоге.
Когда я пишу в консоли rm -rf /home/dir/dir/*
, это прекрасно работает, но я не могу сделать это с помощью переменных.
VAR="/home/dir/dir"
rm -rf "$VAR"/*
Этот код не работал для меня.
Обновление Это действительно очень странно. Я пытался удалить кавычки, но это не сработало.
Вот весь мой файл:
#### VARIABLES
LOGS_PATH="~/Документы/tellbot_work/tellbot-autotest/mega-test/Reports/Mega\ test"
#### End of variables
#### FUNCTIONS
delete_logs()
{
rm -rf $LOGS_PATH/*
echo "Logs from $LOGS_PATH were deleted"
}
#### End of functions
#### MAIN
delete_logs
#### End of main
В выводе он показывает правильный путь к файлам...
echo "$PATH"/*"
? Вы буквально использовалиPATH
для своей переменной? - person cyberbisson   schedule 12.07.2019PATH
? - person jottbe   schedule 12.07.2019PATH
. 2: НЕ структурируйте это так, чтобы эта переменная КОГДА-ЛИБО могла быть пустой, особенно если вы выполняете ее как root... 3: б> Какую ошибку вы получаете? - person Paul Hodges   schedule 12.07.2019ls "~"
не работает. Но вы должны быть очень осторожны, если делаете что-то вродеrm -rf "$VAR"/*
. ЕслиVAR
пусто, вы знаете, что происходит... - person jottbe   schedule 12.07.2019LOGS_PATH
). Удачи. - person shellter   schedule 12.07.2019