with permanente permanent passing mac create crear bashrc argument bash alias

permanente - Evita que bash alias evalúe la declaración al inicio del shell



create alias mac (3)

Digamos que tengo el siguiente alias.

alias pwd_alias=''echo `pwd`''

Este alias no es "dinámico". Evalúa pwd tan pronto como se inicia el shell. ¿Hay alguna forma de retrasar la evaluación de la expresión en los tics hasta el tiempo de ejecución del alias?


Como dijo Jordan, los alias no hacen más que reemplazar el texto.
Si desea que el argumento de eco sea la salida de pwd expandida por bash, entonces no entiendo su pregunta.
Si quieres que el argumento de echo sea `pwd` con las comillas inversas, es posible, por ejemplo:

alias a="echo ''/`pwd/`''"

Por lo tanto, si en lugar de eco tiene algo que hace una cotización de la expansión en su propio tiempo de ejecución, tal vez eso es lo que quiere.


Lo que realmente quieres es una función, en lugar de un alias.

pwd_alias() { echo "$PWD" }

Los alias no hacen nada más que reemplazar el texto. Cualquier cosa con complejidad requiere una función.


No creo que pueda cambiar la evaluación para que no se produzca al inicio de la shell. Como los procesos de creación del alias se ejecutan en el inicio del shell, se evalúa el pwd . Podría simplemente cambiar el alias para simplemente ejecutar pwd sin las marcas anteriores como salidas pwd sin la necesidad de hacer eco. Una forma sencilla de resolver esto es cambiar el uso de un alias a un script de shell en su ruta si no desea cambiar el uso de un alias.

#!/bin/bash pwd