Поддержка подстановочных знаков (*) в сценарии bash для копирования/удаления файлов/папок. ⇐ Linux
Поддержка подстановочных знаков (*) в сценарии bash для копирования/удаления файлов/папок.
У меня есть сценарий, который работает нормально, за исключением того, что он не принимает подстановочные знаки (*). Есть идеи, как я могу это поддержать?
#!/bin/bash currentPath="testCurrent/" новыйПуть="testNew/" logFile=test.txt configFile=test.csv copy_files() { локальный относительный путь="$1" локальная перезапись = "$2" локальный источник="${newPath%/}/${relativePath}" локальный пункт назначения="${currentPath%/}/${relativePath}" log_message "Копирование: $source -> $destination (overwrite=$overwrite)" Destination="${destination%/}" Пункт назначения="${пункт назначения%/*}" mkdir -p "$пункт назначения" if [ "$overwrite" = true]; затем log_message "Копирование (перезапись) $source в $destination" cp -r "$source" "$destination" 2>&1 | тройник -a "$logFile" еще log_message "Копирование $source в $destination" cp -rn "$source" "$destination" 2>&1 | тройник -a "$logFile" фи } удалить_файлы() { локальный относительный путь="$1" if [ -n "$relativePath"]; затем локальный пункт назначения="${currentPath%/}/${relativePath}" log_message "Удаление $destination" rm -r "$destination" 2>&1 | тройник -a "$logFile" фи } log_message() { местное сообщение="$1" echo "$(дата '+%Y-%m-%d %H:%M:%S') - $message" | тройник -a "$logFile" } cd "$(имя_каталога "$(readlink -f "$0")")" log_message "Рабочая папка: $(pwd)" log_message "Начать цикл $configFile" в то время как IFS=, чтение операции -r перезапись относительного пути || [ -n "$операция"]; делать случай "$operation" в "Копировать") copy_files "$relativePath" "$overwrite" ;; "Удалить") remove_files "$relativePath" ;; Эсак готово
У меня есть сценарий, который работает нормально, за исключением того, что он не принимает подстановочные знаки (*). Есть идеи, как я могу это поддержать?
#!/bin/bash currentPath="testCurrent/" новыйПуть="testNew/" logFile=test.txt configFile=test.csv copy_files() { локальный относительный путь="$1" локальная перезапись = "$2" локальный источник="${newPath%/}/${relativePath}" локальный пункт назначения="${currentPath%/}/${relativePath}" log_message "Копирование: $source -> $destination (overwrite=$overwrite)" Destination="${destination%/}" Пункт назначения="${пункт назначения%/*}" mkdir -p "$пункт назначения" if [ "$overwrite" = true]; затем log_message "Копирование (перезапись) $source в $destination" cp -r "$source" "$destination" 2>&1 | тройник -a "$logFile" еще log_message "Копирование $source в $destination" cp -rn "$source" "$destination" 2>&1 | тройник -a "$logFile" фи } удалить_файлы() { локальный относительный путь="$1" if [ -n "$relativePath"]; затем локальный пункт назначения="${currentPath%/}/${relativePath}" log_message "Удаление $destination" rm -r "$destination" 2>&1 | тройник -a "$logFile" фи } log_message() { местное сообщение="$1" echo "$(дата '+%Y-%m-%d %H:%M:%S') - $message" | тройник -a "$logFile" } cd "$(имя_каталога "$(readlink -f "$0")")" log_message "Рабочая папка: $(pwd)" log_message "Начать цикл $configFile" в то время как IFS=, чтение операции -r перезапись относительного пути || [ -n "$операция"]; делать случай "$operation" в "Копировать") copy_files "$relativePath" "$overwrite" ;; "Удалить") remove_files "$relativePath" ;; Эсак готово
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение