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