Os manuais para o lftp realmente afirmam que :
- on-change = CMD executa o comando se alguma coisa foi modificada
Mas a ideia é que o CMD é o comando lftp, não o Bash. Então, para executar o script local 'task.sh' devemos usar a expressão lftp como source task.sh
ou ! task.sh
.
SCRIPTFOLDER="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
lftp -c "
open ${HOST}
user ${USER} ${PASS}
lcd $LOCALTARGETFOLDER
mirror --delete --verbose --on-change='source $SCRIPTFOLDER/test.sh' $REMOTESOURCEFOLDER $LOCALTARGETFOLDER
bye
"