Estoy tratando de ingresar a un servidor y ejecutar varios comandos en el host.
Logré hacer lo siguiente y funciona perfectamente
ssh -t -X thor 'cd /stmp/username; ls -rtl ; rm ~/tmp.file; tcsh -l'
Actualmente, estoy tratando de expandir el comando para cambiar el directorio a la última carpeta que aparece en / stmp / username /
En primer lugar, probé el comando que quería usar en el terminal y funciona. Irá a la última carpeta en la lista del directorio. El comando es
cd `ls -rtl | cut -d' ' -f9 | tail -1`
Ahora estoy tratando de combinar el comando anterior en el comando ssh. Pero no funciona.
ssh -t -X thor 'cd /stmp/username; cd `ls -rtl |cut -d' ' -f9 | tail -1` ; rm ~/tmp.file; tcsh -l'
¿Hay algo mal con mi comando?

ssh -t -X thor "cd ... "para preservar las comillas simples incluidas para su espacio o escapar del espacio.ls(1).Respuestas:
Cuando su comando funciona desde la línea de comandos, p. Ej.
No hay problemas de citas presentes. Sin embargo, cuando intenta agregar eso a su
sshcomando, lo envuelvesshen comillas simples , pero también ha incluido comillas simples dentro de su comando para encerrar el' '(espacio) con elcutcomando, lo que causa problemas.La solución más sencilla es dejar la cita alrededor de su
sshcomando para comillas simples y cambiar la cita alrededor de laspaceque comillas dobles dentro de ella, por ejemplo,(como resultado no hay problemas de expansión de ruta o variables)
Haz el cambio y avísame si tienes más preguntas.
nota: también debe evitar la sustitución de comandos utilizando backticks a favor de
$(...)- mucho más legible.fuente
$(ls -rtl |cut -d" " -f9 | tail -1)lugar de`ls -rtl |cut -d" " -f9 | tail -1`ssh -t -X thor "cd ... "no funcionó?