Tengo un comando que deseo ejecutar en la máquina B desde la máquina A. Si ejecuto el comando en la máquina B localmente, funciona bien.
Aquí está el comando:
for n in `find /data1/ -name 'ini*.ext'` ; do echo cp $n "`dirname $n `/` basename $n
.ext`"; done
Desde la máquina A, emito este comando.
ssh user@machineB for n in `find /data1/ -name 'ini*jsem'` ; do echo cp $n "`dirname $n `/` basename $n .jsem`"; done
Pero me da error syntax error near unexpected token do
¿Qué está mal? Creo que tiene algo que ver con comillas dobles, comillas simples, punto y coma porque la ejecución del comando ssh user@machineB ls
funciona bien. Así que no se trata de autenticación o alguna otra cosa.
Gracias
Respuestas:
El problema es que su shell local está interpretando parte del comando. Debe citar todo el comando para que el shell remoto lo ejecute.
fuente