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

관련 정보