Несколько постов назад кто-то спросил, как показать память в процентах. Кто-то ответил:
free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'
Мне было интересно, смогу ли я превратить эту команду в псевдоним в ~ / .bashrc. Но синтаксис псевдонима:
alias aliasname='command'
Как я могу это сделать? Эта команда содержит '
и "
. Я пробовал разные способы, но это не сработало. Это вообще возможно? Я что-то упускаю?
aliasname() { free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'; }
- все еще только одна строка, никаких изменений в цитировании / экранировании / и т.д. не требуется вообще. Есть причина, по которой фактоид канала freenode!alias
#bash (ну, был , но для большей части жизни фактоида бота какой-то вариант): если вам нужно спросить, используйте вместо этого функцию .Ответы:
Тебе нужно:
Обратите внимание, что вам нужно сбежать как
"
и$
.источник
Утверждение, что синтаксис псевдонима
alias aliasname='command'
немного вводит в заблуждение, так как кажется, подразумевает, что одинарные кавычки являются частью синтаксиса. Они не. Часть после знака равенства аналогична присваиванию переменных в том смысле, что это может быть любое слово оболочки , состоящее из простых символов (без кавычек), строки в кавычках или комбинации.Все они действительны, и последние три эквивалента:
Итак, все, что вам нужно сделать, это правильно выйти из кавычек, чтобы они были внутри значения псевдонима.
См., Например, этот ответ и другие ответы, например, на этот вопрос для обсуждения по этому вопросу:
Или используйте функцию вместо псевдонима, чтобы полностью избавиться от проблем с цитированием:
источник