Как создать псевдоним с помощью команды, содержащей 'и "

Вы также можете использовать бит setuid.

10
30.12.2018, 12:53
2 ответа

Вам нужно:

alias aliasname="free | awk '/^Mem/ { printf(\"free: %.2f %\n\", \$4/\$2 * 100.0) }'"

Обратите внимание, что вам нужно экранировать как ", так и $.

8
27.01.2020, 20:00

Утверждение, что синтаксис псевдонима — alias aliasname='command', немного вводит в заблуждение, так как кажется, что одинарные кавычки являются частью синтаксиса. Они не. Часть после знака равенства похожа на присваивание переменной, поскольку это может быть любое слово оболочки слово , состоящее либо из простых символов (без кавычек ), либо из строки в кавычках, либо из их комбинации.

Все они действительны, и последние три эквивалентны:

alias ks=ls
alias ls='ls -l'
alias ls="ls -l"
alias ls=ls\ -l

Итак, все, что вам нужно сделать, это правильно экранировать кавычки, чтобы они были внутри значения псевдонима.

См., например,. этот ответ и другие ответы, например. эти вопросы для обсуждения на том:

Или используйте функцию вместо псевдонима, чтобы полностью избавиться от проблем с цитированием:

freemem() {
    free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'
}
17
27.01.2020, 20:00

Теги

Похожие вопросы