bash alias starting with pipe does not work?

Как упоминалось в комментариях, согласно packages.ubuntu.com пакет vera ++ был добавлен в официальный репозиторий начиная с Ubuntu 14.04.

Другими словами, вы не можете установить упакованную версию.

У вас есть два основных варианта:

  1. Найдите PPA для вашей версии Ubuntu, например этот , и добавьте его в свою систему:

     sudo add-apt-repository ppa: smspillaz / verapp -latest 
     

    После этого вы просто обновите кеш:

     sudo apt-get update 
     

    И просто установите упакованную версию:

     sudo apt-get install vera \ + \ + 
     
  2. Скомпилируйте это программное обеспечение из исходного кода, который я не буду публиковать. Упоминаю это просто для последовательности ответа.

1
10.08.2016, 00:14
3 ответа

Из man bash :

Псевдонимы позволяют заменять слово строкой, когда оно используется в качестве первого слова простой команды.

Труба не может быть первым словом простой команды.

5
27.01.2020, 23:14

Если вы можете / хотите переключить оболочку, вы можете сделать это в zsh, установив псевдоним как

alias -g gr="| grep"
0
27.01.2020, 23:14

О, ваш псевдоним работает. Попробуйте только gr , и ваша оболочка выдаст синтаксическую ошибку из-за | в начале строки. Это явно означает, что псевдоним работает, т.е. он заменяет одну строку другой , когда предполагается .

В вашем примере gr обрабатывается как аргумент для echo , поэтому подстановки нет. Не было бы, даже если бы внутри псевдонима не было трубы. Начальный символ вертикальной черты не определяет, происходит ли наложение или нет; однако это приводит к ошибке, когда это происходит, но эта ошибка не имеет ничего общего с механикой псевдонимов.

2
27.01.2020, 23:14

Теги

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