Введите ssh-with-port в качестве единственного аргумента, например -e 'ssh -p 2222' или -e "ssh -p 2222" . То, что вы написали, указывает ssh в качестве аргумента опции -e затем опцию -p для rsync (то же самое, что и --perms), за которой следует, вероятно, поддельное имя файла, которое выдаст ошибку, если соединение (и аутентификация) будет успешным.
Не используйте $2222 . Это не будет указывать номер 2222; в одинарных кавычках будет указана фактическая строка $2222 которая не является числом, в двойных кавычках она будет расширена до второго позиционного параметра вашей оболочки, который, вероятно, является пустой строкой, за которым следует 222 .
В качестве альтернативы, как сказано в справочной странице, вы можете использовать конфигурационный файл ssh (обычно) .ssh/ssh_config для автоматического указания порта (для всех, одного или нескольких хостов). Это также относится к другим вещам, которые вы делаете, которые используют ssh, таким как scp sftp и, конечно, ssh , что, вероятно, здесь желательно.