내 서버용 bash 스크립트를 작성하려고 합니다. 이 스크립트가 하는 일은 컬을 실행하여 내 상자의 최신 IP 주소를 가져온 다음 파일에 저장된 이전 IP 주소와 다른 경우 이메일을 보내는 것입니다.
이것이 내가 지금 가지고 있는 것입니다:
#!/bin/bash
#if ip address changes do
x=$(curl -4 "icanhazip.com")
y=$(cat ./oldIP.txt )
if [ "$x"!="$y" ];
then
echo "Current IP Address is $x"
echo "Previous IP address is $y"
# y=$x
elif [ "$x"="$y"]
then
echo "The IP addresses are the same"
fi
#send email to me
저도 사용해 보았 if; then; else;
으나 IP 주소가 동일할 때 스크립트가 다르게 반응하도록 할 수 없습니다.
문제는 $y
.
답변1
테스트 괄호 [ ] 안의 피연산자 사이에는 공백을 두어야 합니다.
#!/bin/bash
#if ip address changes do
x=$(curl -4 icanhazip.com )
y=$(cat ./oldIP.txt )
if [ "$x" != "$y" ]
then
echo "Current IP Address is $x"
echo "Previous IP address is $y"
# y=$x
else
echo "The IP addresses are the same"
fi
#send email to me