Команды регистрации / исполнения файла? - PullRequest
0 голосов
/ 26 февраля 2020

С node.js и npm мы можем использовать пакет. json для псевдонимов сценариев.

{
  "scripts": {
    "greet": "echo hi,"
  }
}
$ npm run greet foo

hi, foo

С Makefile подобное может быть возможно.

greet:
    echo hi,
$ make greet

hi,

Хотя make-файл не допускает дополнительных аргументов.

$ make greet foo

hi,
make: *** No rule to make target 'foo'.  Stop.

Итак, мне интересно, есть ли альтернативы для выполнения команды.

Надеюсь, хотя и не обязательно есть инструмент, который удовлетворяет,

  1. Кроссплатформенный
  2. Допустимый дополнительный аргумент
  3. Независимый от языка
  4. Декларативный
  5. Современный

Если есть такой инструмент, предложите, пожалуйста!

Спасибо

1 Ответ

0 голосов
/ 26 февраля 2020

Я бы сделал что-то похожее на:

OPSTR ?=

greet:
ifneq( $(OPSTR),)
  echo ”Hi, $(OPSTR)”
else
  echo “Hi”
endif

, если вы не против того, чтобы не забыть определить OPSTR:

make greet OPSTR=foo

Редактировать: обернуть это в сценарий оболочки

#! /usr/bin/env bash

if [ “$#” == 1 ];
then
  # warn
fi

make greet “$@“ 

Примечание: я не уверен, будет ли проходить весь массив ...

...