bash - 从最后执行的 bash 命令中获取单词
问题描述
我有一个这样的脚本:
git clone ssh://anothersite.com /home/user/another_directory
我需要检查命令是否有效,然后才能继续执行下一个命令。我以类似的方式解决了它:
if [ "$?" -ne 0 ]; then
echo "{$2} command failed.";
exit 1
我需要“克隆”这个词或另一个将在脚本中进一步遇到的词,而不是 {$ 2}。如果我替换 $ 0,那么它会给我我运行的脚本的名称,而不是我期望的命令“git clone”
解决方案
我需要检查命令是否有效
用if
.
if ! git clone ssh://anothersite.com /home/user/another_directory; then
echo "Clone failed" >&2
exit 1
fi
我需要“克隆”这个词或其他将在脚本中进一步遇到的词,而不是 {$ 2}
编写一个方便的包装函数并传递命令以作为参数执行。
failon() {
if ! "$@"; do
echo "Command failed: $*" >&2
exit 1
fi
}
failon git clone ssh://anothersite.com /home/user/another_directory
推荐阅读
- java - 服务中的“@IgniteInstanceResource var ignite: Ignite”为空
- .net - .NET 从数据集的表中获取行
- javascript - 成功返回 ajax 时模式框不会关闭
- reactjs - 调整大小后获取实际图像大小 React Native
- c++ - 在函数内部的 while 循环中使用 processEvents()
- javascript - 本地存储在刷新后变得一团糟
- c# - 为什么不只在浏览器中输入控制器名称会重定向到我在路由配置中定义的操作?
- php - 带有附件问题的电子邮件
- java - Websphere Liberty 上的 JAX-RS 异常处理
- r - 如何使用 geom_text() 或 geom_label() 精确定位 ggplot() 的文本标签。geom_text_repel() 不起作用。如果使用会引发错误