shell - 命令注册/执行文件?
问题描述
使用 node.js 和 npm,我们可以使用 package.json 给脚本起别名。
{
"scripts": {
"greet": "echo hi,"
}
}
$ npm run greet foo
hi, foo
使用 Makefile,可以实现类似的事情。
greet:
echo hi,
$ make greet
hi,
虽然 makefile 不允许附加参数。
$ make greet foo
hi,
make: *** No rule to make target 'foo'. Stop.
所以,我想知道命令执行是否有替代方案。
我希望,虽然不是必需的,但有一个工具可以满足,
- 跨平台
- 允许附加参数
- 语言中立
- 声明式
- 现代的
如果有这样的工具,请推荐!
谢谢
解决方案
我会做类似的事情:
OPSTR ?=
greet:
ifneq( $(OPSTR),)
echo ”Hi, $(OPSTR)”
else
echo “Hi”
endif
只要您不介意必须记住定义 OPSTR:
make greet OPSTR=foo
编辑:将其包装在 shell 脚本中
#! /usr/bin/env bash
if [ “$#” == 1 ];
then
# warn
fi
make greet “$@“
注意:我不确定传递整个数组是否有效......
推荐阅读
- npm - NPM 在更新另一个包时会卸载不相关的包
- java - 从包含部分文件的 hadoop 文件中读取 n 行
- javascript - 您将如何在 DynamoDB 中为一对多和多对多建模
- c# - 写入数据库时 ASP.NET 控制器出错
- css - 每当css请求字体文件时,如何修复发送404页面的反应路由器?
- javascript - 如何在bixby中获取用户当前位置和地址
- apache-kafka - ms 自批处理创建以来已过去加上逗留时间
- reactjs - 如何确保 node_modules 不包含在捆绑包中
- python - python中的糖果分配器
- php - 如何使用 jQuery File Upload 插件上传不同类别的文件