if-statement - 从 sh 语法到 Makefile 语法的条件
问题描述
我有某个文件 UPDATE.sh。该文件的任务是使用 git merge 更新我的程序。
更新.sh:
#!/usr/bin/env bash
git fetch https://xxxxx
newUpdatesAvailable=`git diff HEAD FETCH_HEAD`
if [[ "$newUpdatesAvailable" != "" ]]
then
git branch backup
git checkout backup
git add .
git add -u
git commit -m date "+%d.%m.%Y"
git checkout master
git merge FETCH_HEAD
else
echo "No updates..."
fi
我必须写同样的东西,但要使用 Make 语法。
我试图弄清楚 Make 中的条件,但对我来说没有用。
请告诉我如何在 Makefile 中正确编写此内容而不使用:
update:
./UPDATE.sh
解决方案
另一种不需要大量引用、分号等的替代方法是利用 make 将在退出代码非零时停止执行规则的事实。
这通常会导致更容易维护 Makefile,规则更简单。
update:
git fetch https://xxxxx
git diff -q HEAD FETCH_HEAD || { echo "No Update" ; false ; }
git branch backup
git checkout backup
git add .
git add -u
git commit -m date "+%d.%m.%Y"
git checkout master
git merge FETCH_HEAD
推荐阅读
- jquery - jquery.min.js 和 bootstrap.js 上的意外令牌错误“<”
- python - Pandas 数据框使用多列连接
- python - 在 Numpy 中进行 2D 和 3D 矩阵乘法的 For 循环替代方案
- java - 如何在 JavaFx 中创建活动日志文件
- python - Flask_restPLUS + NGINX 类型错误
- python - 如何绘制一个 numpy rgb 数组?
- python - Python类函数,不能追加到列表
- java - 我有一个包含 .length 和 .charAt 的错误,前面有一个令牌。为什么它不起作用?
- apache-spark - 停止在 Kubernetes 集群上运行的火花作业的最优雅/正确的方法是什么?
- android - 将 SMS Retriever API 与即时应用程序一起使用