Diferença entre alias em zsh e alias em bash

7

Eu procurei por aí, mas não consegui encontrar nada conclusivo. Existe uma diferença entre o comando alias em zsh e o comando alias no bash? Se não, significa que posso compartilhar um conjunto de aliases entre os dois shells e esperar que eles funcionem como eu pretendia?

    
por Zameer Manji 24.11.2011 / 03:32

3 respostas

6

De acordo com os Alias do Workshop Zsh , eles parecem ter a mesma sintaxe, então eles devem trabalho.

    
por 24.11.2011 / 03:52
12

A sintaxe do comando alias é a mesma em todos os shells no estilo Bourne. Assim, você pode compartilhá-los entre ~/.zshrc , ~/.bashrc , ~/.kshrc , ~/.shrc , desde que eles façam sentido em todos os shells.

O mesmo vale para definições de variáveis e definições de funções, contanto que você use o subconjunto da sintaxe que é suportada em todos os shells.

Se você não usar versões do zsh anteriores à 4.0, poderá colocar todas as suas definições independentes de shell em um arquivo chamado (digamos) ~/.common.rc.sh , em que a primeira linha é

emulate -LR sh 2>/dev/null

Isto diz ao zsh para esperar uma sintaxe compatível com sh apenas neste arquivo. Em seguida, digite esse arquivo próximo ao início de ~/.bashrc , ~/.bashrc , ~/.kshrc e assim por diante.

Isso é basicamente o que eu faço. Por exemplo, eu tenho um código um pouco complexo que gera um alias para ls com minhas opções favoritas, dependendo do que está disponível ( --color , -G , -F , etc.); é agnóstico de shell, por isso vai em .common.rc.sh . Eu também tenho aliases dependentes do shell, como alias zcp='zmv -C' que vai em .zshrc .

    
por 25.11.2011 / 03:02
0
zsh alias permite aliases globais, enquanto bash s são expandidos apenas no início da linha.

Em zsh :

alias -g L="| less -FRX"

Você pode então fazer:

verbose-command L

Consulte aqui para obter uma lista de aliases globais úteis.

    
por 30.06.2018 / 12:06

Tags