У меня есть довольно обширный выбор файлов точек, которые долгое время хранились в git-репо - я просто поддерживаю отдельную ветвь кода для bsd-isms (например, в Linux, чтобы получить цветной вывод ls, который вы делаете ls --color=auto
, но на BSD-лайках, включая Mac OS, это ls -g
).
Это стало громоздким, так как мне приходится вносить изменения, затем объединять ветви и заниматься разрешением конфликтов каждый раз, когда я прикасаюсь к файлу rc своей оболочки. Представьте, что правильным способом справиться с этим будет удаление git-ветвления и просто сделать так, чтобы мой rc-файл определил, на какой ОС он работает, а затем поставил соответствующий аддон-скрипт для псевдонимов.
Проблема в том, что я понятия не имею, как это сделать.
Как мне узнать, нахожусь ли я в Linux или BSD из rc-файла скрипта или оболочки?
uname
не будет работать с тех пор, я должен написать кучу логики для различных систем. Mac говорит Darwin, FreeBSD и т.д., Когда меня больше интересует базовый тип ОС, поскольку это повлияет на конкретный набор инструментов, с которыми я имею дело. Для моего примера выше, я использую bsd ls
или GNU ls
?