Alguns posts atrás, alguém perguntou como mostrar a memória em porcentagem. Alguém respondeu com:
free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'
Eu queria saber se posso transformar esse comando em um alias em ~ / .bashrc. Mas a sintaxe do alias é:
alias aliasname='command'
Como posso fazer isso? Esse comando contém ambos '
e "
. Tentei de maneiras diferentes, mas não funcionou. Isso é possível? Estou esquecendo de algo?
aliasname() { free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'; }
- ainda é apenas uma linha, nenhuma alteração na citação / escape / etc é necessária. Há uma razão pela qual o factid do canal fashode #bash!alias
é (bem, foi , mas durante a maior parte da vida do bot de fatoid é uma variante): Se você precisar perguntar, use uma função .Respostas:
Você precisa:
Observe que você precisa escapar de ambos
"
e$
.fonte
Dizer que a sintaxe de um alias é
alias aliasname='command'
um pouco enganador, pois parece implicar que as aspas simples fazem parte da sintaxe. Eles não são. A parte após o sinal de igual é semelhante às atribuições de variáveis, na medida em que pode ser qualquer palavra shell , composta por caracteres simples (sem aspas), ou uma string entre aspas, ou uma combinação.Tudo isso é válido e os três últimos equivalentes:
Portanto, tudo que você precisa fazer é escapar das aspas corretamente para tê-las dentro do valor do alias.
Veja, por exemplo, esta resposta e outras respostas para, por exemplo, estas perguntas, para discussão sobre isso:
Ou use a função em vez de um alias para se livrar completamente dos problemas de citação:
fonte