enviar comandos a un terminal desde otro
Frecuentes
Visto 1,488 veces
0
Supongamos que tiene una terminal (T1) abierta con 6350 pid.
Tipo:
echo "ls\n" > /proc/6350/fd/0 (writen in another terminal (T2)).
¿Esto escribe ls y la línea salta en T1 pero no lo ejecuta? Por qué ?
También intenté usar
cat|bash with echo "ls\n" > /proc/catPID/fd/0
pero sigue sin ejecutarse.
¿Alguna idea?
Gracias,
Editado:
Un posible truco:
mkfifo toto
$bash < toto
$echo "ls" > toto
1 Respuestas
1
Primero, si quieres echo
interpretar el \n
como nueva línea tienes que llamarlo con -e
.
En segundo lugar, lo que quiere (secuestrar una terminal) no es (fácil) factible, vea unix.stackexchange. yo usaría screen
en ambas sesiones (una con la opción -x).
Respondido 13 Abr '17, 13:04
echo
sin opcion -n
agrega un \n
al argumento - MirkoBanchi
@rvlander: el consejo con el eco fue cómo generar \n en caso de que desee generarlo (como MirkoBanchi ya mencionó, no es necesario ya que el eco ya se genera por sí solo). Tu problema es que quieres "secuestrar" los pts, lo cual no es factible. - flolo
sin "\n"?
echo "ls" > /proc/6350/fd/0
- MirkoBanchi