Для выполнения домашнего задания мне нужно отправить электронное письмо с указанных адресов электронной почты, если место на диске падает ниже определенного порога. Однако у меня возникли проблемы с передачей адресов электронной почты в переменную. Пользователь может указать столько адресов электронной почты, сколько ему нужно, в командной строке. Кроме того, если они не содержат домен, электронная почта все равно должна отправляться на адрес "@ uml.edu".
Я пытаюсь решить проблему с введением пользователем неизвестного количества адресов электронной почты с помощью массива. Я никогда не использовал массив в bash, и думаю, что я могу использовать неправильный синтаксис.
Я не знаю, нужно ли мне обязательно использовать массив для выполнения того, что я делаю, но это, казалось, имело смысл. Я попытался использовать цикл for для приема нескольких значений, и я использую оператор case для обработки того, включил ли пользователь домен для адреса электронной почты.
#!/bin/bash
email=()
for {{ x=0; $#<0; x++ ))
do
case $1 in
*@*) email[x]="$1"
shift ;;
*) email[x]="${1}@uml.edu"
shift ;;
esac
done
echo ${email[@]}
Приведенный выше код - это, по сути, тестовый пример, который я включил бы в свой основной код, как только он заработал. Ожидаемые результаты: пользователь может ввести один или несколько адресов электронной почты в командной строке, а затем они будут отображаться с помощью команды echo.