Vor ein paar Posts hat jemand gefragt, wie der Speicher in Prozent angezeigt werden soll. Jemand antwortete mit:
free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'
Ich habe mich gefragt, ob ich diesen Befehl in ~ / .bashrc in einen Alias verwandeln kann. Die Syntax des Alias lautet jedoch:
alias aliasname='command'
Wie kann ich das machen? Dieser Befehl enthält sowohl '
und "
. Ich habe verschiedene Methoden ausprobiert, aber es hat nicht funktioniert. Ist das überhaupt möglich? Vermisse ich etwas
aliasname() { free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'; }
- Immer noch nur eine Zeile, es sind überhaupt keine Änderungen an Zitieren / Escape / etc erforderlich. Es gibt einen Grund der freenode #bash Kanal!alias
factoid (na ja, ist wurde , aber für die meisten der factoid bot das Leben einiger Variante): Wenn Sie fragen haben, stattdessen eine Funktion zu verwenden .Antworten:
Du brauchst:
Beachten Sie, dass Sie sowohl
"
als auch entkommen müssen$
.quelle
Zu sagen, dass die Syntax eines Alias
alias aliasname='command'
etwas irreführend ist, scheint zu implizieren, dass die einfachen Anführungszeichen Teil der Syntax sind. Sie sind nicht. Der Teil nach dem Gleichheitszeichen ähnelt Variablenzuweisungen, da es sich um ein beliebiges Shell- Wort handeln kann , das entweder aus einfachen Zeichen (ohne Anführungszeichen), einer Zeichenfolge in Anführungszeichen oder einer Kombination besteht.Diese sind alle gültig und die letzten drei entsprechen:
Alles, was Sie tun müssen, ist, die Anführungszeichen ordnungsgemäß zu maskieren, damit sie innerhalb des Aliaswerts liegen.
Siehe zB diese Antwort und andere Antworten auf zB diese Frage zur Diskussion darüber:
Oder verwenden Sie die Funktion anstelle eines Alias, um das Zitieren von Problemen vollständig zu beseitigen:
quelle