Você chama um shell de login interativo com -t -t
. Remova-os da sua linha de comando.
A maneira correta de passar argumentos para um script bash -s
é
bash -s "$COMMAND" "$SERVICENAME" <<'END_SCRIPT'
here goes
script that uses
"$1" and "$2"
END_SCRIPT
O script recebe os valores de $COMMAND
e $SERVICENAME
e estes estão disponíveis como $1
e $2
no script. O próprio script deve ser citado, o que é feito citando a tag here-document no início.
No seu caso:
ssh -o StrictHostKeyChecking=no "user@$SERVER" bash -s "$COMMAND" "$SERVICENAME" <<-'ENDSSH'
echo "I'd like to see this"
if [ "$1" = "stop" ]; then
...
fi
ENDSSH
Observe que a tag ENDSSH
no final precisa estar na primeira coluna (primeiro na linha) ou recuada usando um caractere de tabulação.
Exemplo que funciona para mim:
ssh myhost bash -s 'hello' <<'END'
printf '%s world!\n' "$1"
END
que produz a string hello world!
no terminal.