Bash bang commands y más

bash
A continuación una serie de comandos útiles en bash, que (por lo menos a mí) me viene bien tener a mano, razón por la cual seguramente este post se actualice varias veces a medida que vaya añadiéndo comandos útiles a mi día a día.

“$?”: Exit code

“$?” Muestra el exit code del comando que se acaba de ejecutar.

Ésto se puede usar dentro de scripts en bash, para saber cómo ha acabado la línea anterior del script, lo cual puede resultar muy muy útil.

“-“: Path anterior

La variable de entorno “$OLDPWD” tiene la referencia al path anterior al actual (es decir, al directorio al que estábamos justo antes de cambiar al directorio actual).

Actualmente, se le suele pasar, símplemente el parámetro “-” al comando “cd”, lo cual es equivalente a hacer “cd “$OLDPWD” && pwd” [Fuente]

Además de lo anterior, contamos con una serie de comandos llamados “bash bang (!) commands” (los cuales empiezan por “!”) que sirven para ejecutar un comando que hemos ejecutado préviamente. A continuación los que me parecen más útiles:

“!!”: Comando anterior

“!!” copiará el comando entero que acabamos de ejecutar. Muy útil para cuando olvidamos el “sudo”

“!$”: Último parámetro anterior

Similar al anterior punto, pero únicamente se refiere al último parámetro de la ejecución anterior.

“!texto”: Último comando “texto” ejecutado

Con “!texto” estaremos ejecutando la última ejecución que empieza con “texto”. “texto” no tiene por qué ser el nombre del comando ejecutado, puede ser un prefijo, pues basta con que los primeros carácteres coincidan.

“:p”: Muestra el comando a ejecutar

Si bien “:p” no es un “bang command”, es muy útil para usarse junto al comando anterior (“!texto”), pues de esta manera, se printará el comando que “!texto” ejecutaría, sin ejecutarlo en realidad. Así pues, si tienes dudas del comando que se te ejecutará con “!texto”, prueba a ponerle el “:p” para mostrar el comando a ejecutar y estar así seguro de que vas a hacer lo que quieres hacer. Como extra, este comando meterá en el history el comando que se hubiera ejecutado, aun cuando no se haya ejecutado, ideal para usar después el “!!”.

¡Mucha más información interesante en los enlaces del final!

Fuentes:
http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/
http://ss64.com/bash/bang.html
http://samrowe.com/wordpress/advancing-in-the-bash-shell/

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *