web-dev-qa-db-fra.com

Bash si sur une seule ligne

Je voudrais savoir comment puis-je écrire si les conditions d'un script bash sur une seule ligne.

Par exemple, comment puis-je écrire ceci sur une seule ligne, puis en insérer un autre comme celui-ci sur la suivante?

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

Je pose cette question car mon nom de domaine contient plusieurs alias .bashrc et le même .bashrc (synchronisé) sur plusieurs systèmes, mais je n'ai pas besoin de tous les alias sur chaque système. Je mets la plupart d’entre elles dans les déclarations, et tout fonctionne à merveille à présent, mais elles prennent beaucoup de place, 3 lignes chacune plus la ligne vierge entre elles (j’aime les avoir facilement visibles)

J'utiliserai également cette technique pour les variables d'environnement.

12
Horațiu Mlendea

Vous l'écririez comme tel:

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

Notez que cela pourrait aussi être écrit (comme suggéré par @glennjackman):

[ -f "/usr/bin/wine" ] && export WINEARCH=win32
24
dr01

Je trouve également que juste en tapant n'importe quel complexe if then else commande, appuyez sur Entrée, puis après il exécute juste cliquez sur la flèche vers le haut. La ligne de commande répète bien sûr la dernière commande saisie, mais dans ce cas, elle met tout sur une seule ligne, selon vos besoins. C'est une façon de tricher, mais c'est efficace.

2
Alan