¿Cómo puedo automatizar esta tarea?
1) Estás en A. 2) Entras en B. 3) Ejecutas un script en B, que necesita un parámetro conocido en A.
Primero, pensé que tal vez podría enviar el valor cuando abrí la conexión con ssh. Luego, probablemente más simple, entre 1) y 2), scp todo el script a la misma ubicación en B (reemplazando el anterior). Pero aún así, ¿cómo ejecuto el script en B? (Es decir, cómo automatizar ese último paso. Por supuesto, podría ejecutarlo manualmente después de ssh).
Otro pensamiento, tal vez descartar ssh por completo: tengo una página web en B, entonces, ¿podría el script de alguna manera ser invocado a través de una interfaz web "bajo el capó"?
¿O lo harías de una manera completamente diferente?

Respuestas:
Esto se ejecutará
myscript foobaren el servidor.fuente
~/.elm/aliases).") en lugar de simples (') es importante aquí. El uso de double significa que el shell en su máquina local expandirá la variable y luego ejecutará elsshcomando. Si se usaran los únicos, el shell local no tocaría el comando, que se envía textualmente pero aún se expande en el shell remoto.$myparametercontiene espacios, se dividirá en el lado del servidor. Bashprintftiene un%qformato que puedes usar. Tengo un código de ejemplo, pero no cabe aquí. Crearé una nueva respuesta para ello.(Este es un seguimiento de mi comentario sobre la respuesta aceptada ).
Tenga en cuenta que si
$myparametercontiene espacios, se dividirá en el lado del servidor. El printf de Bash tiene un%qformato que puedes usar. Ejemplo:fuente
Si es seguro asumir que
$myparameterva a no contener comillas simples (de lo contrario ver aquí o utilice laprintf '%q' ...solución mediante janmoesen), puede simplemente hay que poner comillas simples$myparameterpara evitar el problema de Split-on-espacio en el lado del servidor.fuente