колотите команду псевдонима и с одинарными и с двойными кавычками

У меня есть эта команда, которая делает то, что я хочу, но я не могу добраться для искажения ее в моем .bashrc (обратите внимание, что она использует и одинарные и двойные кавычки):

svn status | awk '$1 =="M"{print $2;}'

Я попробовал:

alias xx="svn status | awk '$1 ==\"M\"{print $2;}'"

И некоторые другие разумные комбинации без удачи.. Я знаю, что удар очень придирчив с кавычками.. Таким образом, что корректный путь состоит в том, чтобы исказить его и почему?Спасибо

62
задан 21 November 2013 в 06:01

3 ответа

Просто необходимо выйти из него правильно.

alias xxx="svn status | awk '\$1 ==\"M\"{print \$2;}'"
70
ответ дан 31 October 2019 в 13:36

Существует третий путь (я нашел легче) около использования функции, или выход из пути @ffledgling сделал: использование синтаксиса строкового литерала ( вот превосходный ответ ).

Так, например, если Вы wan't для создания псевдонима этот onliner это закончит тем, что было:

alias snap-removedisabled= 

, Таким образом, просто необходимо добавить $ перед строкой и выйти из одинарных кавычек.

snap list --all | awk \'$5~"disabled"{print $1" --revision "$3}\' | xargs -rn3 snap remove'

, Таким образом, просто необходимо добавить $ перед строкой и выйти из одинарных кавычек.

1
ответ дан 31 October 2019 в 13:36

Вот что-то, что выполняет то же самое, не используя псевдоним. Поместите его в функцию в Вашем .bashrc:

xx() {
    svn status | awk '$1 =="M"{print $2;}'
}

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

70
ответ дан 31 October 2019 в 13:36

Другие вопросы по тегам:

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