Acho que o que você está tentando perguntar é como misturar e comparar variáveis que devem ser avaliadas localmente com aquelas que precisam ser avaliadas remotamente.
Uma opção é escrever um script para as ações a serem manipuladas remotamente, encapsulando qualquer referência a variáveis locais para que as aspas do host local não possam vê-las para expandi-las.
Outra opção para um segmento realmente curto é misturar suas citações, assim:
FRUIT=apples
ssh machine2 "echo Eating $FRUIT "'on $HOSTNAME'
Variáveis no segmento de aspas duplas serão avaliadas localmente (antes que o ssh
seja executado). Tudo no segmento com aspas simples será tratado como um literal. As duas strings entre aspas serão concatenadas para criar a string echo Eating apples on $HOSTNAME
e o resultado passado como um literal a ser avaliado remotamente.