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

関連情報