Идиома make-файла для установки на первом доступном каталоге

Там существует много легких дистрибутивов Linux. Некоторые, которые приходят на ум:
- Crunchbang
- Lubuntu

Или еще более легкий:
- SliTaz
- Щенок Linux
- Чертовски Маленький Linux

2
08.08.2013, 11:16
2 ответа

Очевидное, решение стиля сценария состояло бы в том, чтобы сделать это:

for dir in /etc/bash_completion.d /usr/share/bash-completion/completions; \
do \
    if [ -d "$$dir" ]; \
    then \
        install [...] "$$dir" || exit 1; \
        break; \
    fi; \
done

Однако это не очень хорошо:

  • Много символов ESC
  • Должен использовать ужасный || exit 1 проверять ошибки

И это не проверяет, актуален ли файл (указывает 2.2, 2.3).

1
27.01.2020, 22:23

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

for d in /etc/bash_completion.d /usr/share/bash-completion/completions; do \
  { cmp -s $(COMPLETION_SCRIPT) $$d/$(COMPLETION_SCRIPT) || \
    install $(INSTALL_OPTIONS) $(COMPLETION_SCRIPT) $$d; } && exit; \
done; \
exit 1
0
27.01.2020, 22:23

Теги

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