Сначала переделай это
get_proxy_list() {
savefile=~/.PROXY_LIST
date=$(date +%d.%m.%Y)
url="http://site.com/proxy/list_${date}.txt"
...
}
В это
make_dmy_date() {
date "+%d.%m.%Y"
}
make_proxy_url() {
echo "http://site.com/proxy/list_$(make_dmy_date).txt"
}
make_proxy_ofname() {
echo "~/.PROXY_LIST"
}
get_proxy_list() {
url=$1
savefile=$2
...
}
get_proxy_list `make_proxy_url` `make_proxy_ofname`
А потом уже пиши функции, какие нужно. Если нужно декрементировать дату, пиши для этого функцию. Заодно внутри функции идёт контроль над кодом, но и сам код может получиться нетривиальным, так как при декременте даты нужно учитывать, что она может дойти до нуля и это нужно будет тоже обкладывать кодом каким-то.
А если всё в куче писать, то будет вот такая свалка, как у тебя сейчас, - неповоротливая и непригодная для каких-то тонких изменений и настройки.