Git 更新自动通知

Git 更新自动通知

我正在尝试创建一个脚本,如果有任何 Git 更新,它会通过电子邮件发送给我。我认为有几种更简单/更困难的方法可以做到这一点。另外,我注意到文本没有突出显示颜色,所有文本都是默认颜色。我认为文本,取决于它是变量还是在函数中,将是不同颜色的文本。

#!/bin/bash
email="my_email@my_domain"
var="yum list available git"

if ["$var"]
then
echo $var | mail -s "Gitlab Updates" $email
fi

当我运行命令进行测试时,我得到以下信息:

./testEmail.sh: line 6: [yum list available git]: command not found

我假设我在这里做错了很多事情,我只想要一个干净简单的脚本,当我们有 Git 更新时通过电子邮件给我发送。

发行版 - Fedora 20

答案1

首先,$var 的输出只是(yum list available git),它不是命令的结果。要让 $var 包含命令,您必须像这样定义它:

var=$(yum list available git)

if [[ $var ]] 的条件并不比 if $var 存在更多。因此它不会将 $var 的输出与任何内容进行比较。因此你的脚本应该看起来像这样:

#!/bin/bash
email="my_email@my_domain"
var="yum list available git | grep git | wc -l"

if [ $var -ge 1 ]; then
    echo "Git updates available" | mail -s "Gitlab Updates" $email
fi

答案2

#!/bin/bash
export PATH=$PATH

email="my_email@my_domain"
var=$(yum list available git)

if [ "$var" ] 
then
echo $var | mail -s "Gitlab Updates" $email
fi

这个脚本对我有用。

答案3

您必须在脚本中导出 $PATH:

#!/bin/bash
export PATH=$PATH

email="my_email@my_domain"
var="yum list available git"

if [ "$var" ] ##I added spaces before the first and after the last quotes. 
then
echo $var | mail -s "Gitlab Updates" $email
fi

完成此操作后,我能够让脚本在 Fedora 20 VM 上运行。

答案4

#!/bin/bash email="my_email@my_domain" var="yum list available git" [[ $($var) ]] && echo $var|mailx -s "Gitlab Updates" $email

相关内容