Kilka postów temu ktoś zapytał, jak procentowo wyświetlać pamięć. Ktoś odpowiedział:
free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'
Zastanawiałem się, czy mogę zmienić to polecenie w alias w ~ / .bashrc. Ale składnia aliasu jest następująca:
alias aliasname='command'
W jaki sposób mogę to zrobić? To polecenie zawiera zarówno '
i "
. Próbowałem na różne sposoby, ale to nie działało. Czy to w ogóle możliwe? Czy coś brakuje?
aliasname() { free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'; }
- wciąż tylko jedna linia, bez żadnych zmian w cytowaniu / ucieczce / etc. Jest powód, dla którego!alias
faktoid kanału #bash dla freenode jest (no cóż, był , ale przez większość życia bota factoidu jakiś wariant): Jeśli musisz zapytać, użyj funkcji zamiast tego .Odpowiedzi:
Potrzebujesz:
Zauważ, że musisz uciec zarówno
"
i$
.źródło
Mówienie, że składnia aliasu jest
alias aliasname='command'
nieco myląca, ponieważ wydaje się sugerować, że pojedyncze cudzysłowy są częścią składni. Oni nie są. Część po znaku równości jest podobna do przypisań zmiennych, ponieważ może być dowolnym słowem powłoki , złożonym ze zwykłych znaków (bez cudzysłowów), ciągu cytowanego lub kombinacji.Wszystkie są ważne, a ostatnie trzy równoważne:
Wszystko, co musisz zrobić, to odpowiednio uciec cudzysłowom, aby znalazły się w wartości aliasu.
Zobacz np. Tę odpowiedź i inne odpowiedzi na np. Te pytania do dyskusji na ten temat:
Lub użyj funkcji zamiast aliasu, aby całkowicie pozbyć się problemów z cytowaniem:
źródło