O Bash está exibindo aspas simples para mostrar um comando que é uma sintaxe de entrada válida. Ele não está executando um comando que contém essaspas simples em um parâmetro para o comando ssh .
ssh … '"sudo' /home/pi/shared/blink.sh 27 'off"'
informa que os últimos 4 parâmetros do comando ssh são "sudo , /home/pi/shared/blink.sh , 27 e off" .
No host remoto, o daemon ssh une as palavras dos comandos com espaços como separadores, portanto, o comando remoto que você está executando é
"sudo /home/pi/shared/blink.sh 27 off"
Isso tenta executar um comando cujo nome é sudo /home/pi/shared/blink.sh 27 off , o que obviamente não existe.
Remova as aspas duplas da sua definição de testvar .
Não importa aqui, mas provavelmente importa no seu caso real: em vez de ${testvar} , escreva "$testvar" (ou "${testvar}" se você quiser, mas as chaves são opcionais). Sempre coloque aspas duplas em torno das substituições de variáveis , a menos que você saiba por que precisa deixá-las de fora. "$testvar" expande para o valor da variável testvar , enquanto $testvar quando não está entre aspas duplas trata o valor de testvar como uma lista de padrões glob separados por espaço em branco.