Bash se na linha única

5

Gostaria de saber como posso escrever as condições dentro de um script bash em uma única linha.

Por exemplo, como posso escrever isso em uma única linha e depois colocar outra como esta no próximo?

if [ -f "/usr/bin/wine" ]; then
    export WINEARCH=win32
fi

Pergunto isso porque tenho alguns aliases em meu .bashrc e tenho o mesmo .bashrc (synced) em vários sistemas, mas não preciso de todos os aliases em cada sistema. Eu coloquei a maioria deles dentro de declarações, e está tudo funcionando perfeitamente agora, mas eles ocupam muito espaço, 3 linhas cada, mais a linha em branco entre eles (eu gosto de tê-los facilmente visíveis)

Também usarei essa técnica para variáveis de ambiente.

    
por Horațiu Mlendea 20.01.2017 / 16:05

2 respostas

11

Você escreveria assim:

if [ -f "/usr/bin/wine" ]; then export WINEARCH=win32; fi

Note que isto também pode ser escrito (como sugerido por @glennjackman):

[ -f "/usr/bin/wine" ] && export WINEARCH=win32
    
por 20.01.2017 / 16:16
2

Eu também acho que basta digitar qualquer comando if then else, tecle enter, e depois que ele for executado, aperte a seta para cima. A linha de comando irá repetir o último comando digitado, claro, mas neste caso, coloca tudo em uma linha como você exige. É um truque, mas é eficaz.

    
por 21.01.2017 / 00:51