Acabo de enterarme de lo que se debe hacer fc
para golpear. Quiero usarlo para editar y ejecutar los dos comandos anteriores, incluido el comando más reciente .
Puedo editar y ejecutar dos comandos hasta pero sin incluir el comando más reciente con fc -2 0
. Esto es lo que quiero, excepto compensado por uno para incluir el comando más reciente.
Una solución viable pero molesta es examinar la salida de history
(o fc -l
), encontrar los números de comando absolutos y dar el rango de comando en términos absolutos. Por ejemplo, si fc -l -2
genera lo siguiente:
502 echo hello
503 echo goodbye
... entonces podría decir fc 502 503
. Esto es lo que quiero, excepto que no quiero el paso adicional de examinar la salida del historial. (Lo sé, soy exigente).
¿Hay alguna manera de hacer esto que no implique (1) un examen manual de la historia o (2) un comando desechable para sacar los comandos de interés del lugar más reciente?
Estoy corriendo GNU bash version 3.2.57
en macOS, por lo que vale.
fuente
fc -s -2; fc -s -1
Funciona para ti? Funcionabash
en Ubuntu 16.04.-s
salta el paso de edición. (Además, me gustaría editar las dos líneas juntas). Aunque casi. :-)-s
, como enfc -2; fc -1
.fc -2; fc -1
edita y ejecuta en serie. Además, por cualquier razón,fc -2; fc -1
edita el mismo comando (número-2
) dos veces, en lugar de los dos más recientes.fc -- -2 -1
parece hacer esto, ya que--
hace que todos los siguientes parámetros sean posicionales, no opciones.Respuestas:
Uno esperaría
fc -2 -1
trabajar, pero parece haber confusión entre las opciones y los parámetros posicionales que comienzan con-
. Sin embargo, usar el estándar--
para separar las opciones de los parámetros parece ofrecer una solución:Tenga en cuenta que las versiones
bash
anteriores a 4.3. tuvo otros problemas con elfc
comando, incluidofff.
aquí , donde la selección de la línea del historial puede ser incorrecta.fuente
Esto toma la identificación de los últimos 2 comandos y los ejecuta nuevamente
fuente
fc
construcción a menos que se especifique el interruptor-l
o-s
.