EDITAR: puede hacer esto de manera compatible con POSIX con la herramienta de comando de reparaciónfc
:
fc 77 79
Esto abrirá su editor (probablemente vi
) con los comandos 77 a 79 en el búfer. Cuando guarde y salga ( :x
), se ejecutarán los comandos.
Si no desea editarlos y está MUY SEGURO de saber a qué comandos está llamando, puede usar:
fc -e true 77 79
Esto se usa true
como un "editor" para editar los comandos, por lo que simplemente sale sin hacer ningún cambio y los comandos se ejecutan tal cual.
RESPUESTA ORIGINAL:
Puedes usar:
history -p \!{77..79} | bash
Esto supone que no está utilizando ningún alias o funciones ni ninguna variable que solo esté presente en el entorno de ejecución actual, ya que, por supuesto, no estarán disponibles en el nuevo shell que se está iniciando.
Una mejor solución (gracias a Michael Hoffman por recordarme en los comentarios) es:
eval "$(history -p \!{77..79})"
¡Uno de los muy, muy pocos casos donde eval
es realmente apropiado!
Ver también:
!77 ; !78 ; !79
bien?