Hace algunas publicaciones, alguien preguntó cómo mostrar la memoria en porcentaje. Alguien respondió con:
free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'
Me preguntaba si puedo convertir este comando en un alias en ~ / .bashrc. Pero la sintaxis del alias es:
alias aliasname='command'
¿Cómo puedo hacer esto? Ese comando contiene ambos '
y "
. Intenté diferentes formas, pero no funcionó. ¿Es esto posible? ¿Me estoy perdiendo de algo?
aliasname() { free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'; }
- Todavía solo una línea, no se necesitan cambios en las citas / escape / etc. Hay una razón por la cual el factoid del canal freenode #bash!alias
es (bueno, fue , pero durante la mayor parte de la vida del bot factoid alguna variante de): si tiene que preguntar, use una función en su lugar .Respuestas:
Necesitas:
Tenga en cuenta que necesita escapar de ambos
"
y$
.fuente
Decir que la sintaxis de un alias es
alias aliasname='command'
un poco engañoso, ya que parece implicar que las comillas simples son parte de la sintaxis. No son. La parte después del signo igual es similar a las asignaciones de variables, ya que puede ser cualquier palabra de shell , compuesta de caracteres simples (sin comillas), o una cadena entre comillas, o una combinación.Todos estos son válidos, y los tres últimos equivalentes:
Entonces, todo lo que necesita hacer es escapar de las comillas correctamente para tenerlas dentro del valor de alias.
Vea, por ejemplo, esta respuesta y otras respuestas a, por ejemplo, estas preguntas para discutir sobre eso:
O use la función en lugar de un alias para deshacerse de los problemas de citas por completo:
fuente