Следующая программа просто для удовольствия, я пытаюсь разобраться в сценариях bash. Я не собираюсь использовать скрипт для создания резервных копий.
Я пытаюсь создать for для l oop, чтобы проверить, допустим ли пользовательский ввод (каталоги, для которых будет выполнено резервное копирование) в массиве. Если ввод действителен, его следует использовать. Если нет, его следует перезаписать значением по умолчанию /home/$USER
.
echo "Please enter absolute path of directory for backup. Default is "/home/$USER
echo "You can choose multiple directories. Press CTRL-D to start backup."
read USER_DIR
# save user input into array
while read line
do
USER_DIR=("${USER_DIR[@]}" $line)
done
# check if user input in array is valid (directory exists)
for i in ${USER_DIR[@]}
do
if [[ -d "${USER_DIR[$i]}" ]]; then
# directory exists
${USER_DIR[$i]}=${USER_DIR[$i]}
else
# directory does not exist
${USER_DIR[$i]}="/home/$USER"
fi
done
# show content of array (check if for loop works)
echo "Backups of the following directories will be done:"
for i in ${USER_DIR[@]}; do echo $i; done
Это вывод, который я получаю (/home/michael/Downloads
- это каталог, notadirectory
- нет)
Спасибо за ваше время.