Предполагая, что вам нужны только переменные оболочки $repo
$arch
и $linesToWrite
, заключите их в двойные кавычки, а остальное - в одинарные. Строки в кавычках рядом друг с другом образуют одну строку ("a"'b' - ab). (Я не знаю, что вы делаете с обратными слешами в команде замены, поэтому я их оставил, но, вероятно, они вам не нужны).
perl -0pE 'use strict; my $repo = "'"$repo"'"; my $arch = "'"$arch"'";
s|\rsync:\/\/[^\]]+|'"${linesToWrite}"'|'