bash - 如何将命令及其参数作为单个参数传递给脚本?
问题描述
我有一个用于构建内核的脚本,其中有一个函数我想用它来捕获构建命令中的错误,但我不知道如何将多个参数作为一个参数传递以使其正常工作。语法如下:
run_build() {
cmd=$($1)
status=${PIPESTATUS[0]}
$*
if ($status != 0); then
echo "$cmd failed!"
exit 1
else
echo "$cmd succeeded."
fi
}
问题是,当我尝试传递make
带有参数的make
命令时,正在执行的命令没有参数。我尝试使用 "$*" 语法来调用所有参数,但它似乎不起作用。一个示例命令是
make O=out -j8 zImage
从脚本调用该行时,我需要包含接下来的 3 个参数。有人有想法吗?
解决方案
对此的正确解决方案可能类似于
if "$@"; then
echo "$@ succeeded" >&2
else
rc=$?
echo "$@ failed" >&2
fi
但这似乎仍然像您正在用更糟糕的东西替换完美的内置功能。
推荐阅读
- r - 使用R将postegresSQL外键与主键匹配
- javascript - 在提交数据之前确保状态是最新的正确模式是什么
- java - 如何在kotlin中将地图转换为Json字符串?
- machine-learning - 以 TFIDF 作为输入的 LSTM,尺寸误差
- angular - 加载视频并播放 Angular 9
- sql-server - MS SQL Linux“资源池‘内部’中的系统内存不足,无法运行此查询。”
- vue.js - 如何从另一个组件导入一个组件作为道具?
- azure - 从分配的用户中删除 Azure AD 用户时不再停用
- c# - 如何在序列化过程中为我的 ExpandoObject 命名?
- javascript - 使用单个 JavaScript 文件更新 2 个 HTML 文件中的设计