Для хранения команды можно использовать функцию:
В любой подобной Границе оболочке, но bash
:
mycommand() /path/to/some/command some fixed args "$@"
mycommand other args
В bash
, Вам нужны фигурные скобки:
mycommand() { /path/to/some/command some fixed args "$@";}
(те фигурные скобки не причиняют боль в других оболочках, настолько лучше всего должен использовать их, когда необходимо быть портативными),
Если Вы - a csh
наркоман, Вы могли также использовать alias
.
Можно использовать переменную в качестве в:
mycommand=/path/to/some/command
но помните это в каждой оболочке, но zsh
, необходимо заключить расширение в кавычки:
"$mycommand" its args
Если Вы хотите сохранить команду и больше, чем это - 0th аргумент, можно использовать массивы в оболочках, которые поддерживают их (bash
и zsh
сделайте),
mycommand=(/path/to/some/command some fixed args)
"${mycommand[@]}" some other args
В zsh
можно сойти с рук
$mycommand some other args
пока ни один из фиксированных args не пуст.
Обычно, если вы нацеливаетесь на конкретную версию BSD, вы используете BSD make
(иногда известную как bmake
, bsdmake
или pmake
). Это имеет различные предопределенные наборы правил для определенных типов целей, которые вы хотите построить.
Например, на NetBSD bsd.prog.mk
обычно используется для сборки программы; вы просто объявляете имя программы и исходные файлы, и она автоматически вызывает компилятор и компоновщик с правильными настройками. Это также позволило бы интегрировать вашу программу в build.sh
(программу NetBSD для сборки всей операционной системы из исходных текстов), так как она автоматически подхватит такие вещи, как DESTDIR и настройки кросс-компиляции, без необходимости делать что-нибудь особенное . Есть похожие файлы правил для сборки библиотек и так далее.
Главная преграда на пути использования этого везде заключается в том, что это кажется довольно непредсказуемым. Смотрите также эту дискуссию о преимуществах и недостатках создания BSD.
Я видел, что если OpenBSD использует одну из моих программ в базовой системе, они могут игнорировать сценарий настройки:
Опять же, они не могут. Это зависит от того, кто выполнял эту работу:
Однако сценарий конфигурации допустим в области портов. Прошло довольно много времени с тех пор, как я видел, как разработчики порта создают make-файл только потому, что они не одобряют autoconf.