Tengo un comando de compilación incremental para mi proyecto que generará algo si hago una compilación limpia y generará algo más (menos) si hago una compilación incremental.
¿Cómo puedo guardar esto si ya ejecuté una compilación limpia mycommand.sh
y el resultado se imprime en la ventana del terminal (sin usar copiar y pegar)?
me olvidé de hacer
mycommand.sh > myfile.txt
o
mycommand.sh >> myfile.txt
para guardar la salida en un archivo.
Respuesta1
Si bien $(!!)
volver a ejecutar el comando anterior puede parecer (o a veces ser) una solución, también tiene sus inconvenientes.completamenteentender su uso.
Ejemplo: si el comando hizo algunas modificaciones como
rm -rv /tmp/*
servirá, luego volver a ejecutar ese comando de cualquier manera puedenoproducir el mismo resultado que antes con la excepción de que si /tmp/ estaba vacío antes de la primera ejecución y todavía está vacío la segunda vez, el resultado debería ser el mismo.
En pocas palabras: no hayseguroforma de reutilizar o guardar (sin copiar y pegar) el resultado del último comando si no lo guardó mientras se ejecutaba el comando.
Respuesta2
No puede hacerlo, ya que bash no asigna ninguna salida a ningún parámetro ni a ningún bloque en su memoria.
Sin embargo, puedes utilizar $(!!)
pararecalcular(no reutilizar) la salida del último comando.
El !!
por sí solo ejecuta el último comando.
$ echo pierre
pierre
$ echo my name is $(!!)
echo my name is $(echo pierre)
my name is pierre