9

Я хотел бы знать, как я могу написать, если условия внутри bash-скрипта в одной строке.

Например, как я могу написать это в одной строке, а затем поместить следующую, как это, в следующую?

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

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

Я также буду использовать эту технику для переменных среды.

2 ответа2

15

Вы бы написали это так:

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

Обратите внимание, что это также может быть написано (как предложено @glennjackman):

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

Я также обнаружил, что просто набрав любую сложную команду if then else, нажмите ввод, а затем, после того, как она выполнится, просто нажмите стрелку вверх. Конечно, командная строка будет повторять последнюю набранную команду, но в этом случае она помещает все это в одну строку, как вам нужно. Это обман, но он эффективен.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .