微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在bash中出现意外的错误

如何解决在bash中出现意外的错误

[已解决] 我是bash- / shell-script的新手,并尝试在服务器上设置IP地址检查,每周大约获取一次新IP。 然后,脚本将把新的IP发送给用户

我的问题是,我在最后一个if-else语句中遇到了“意外” else的语法错误,并且无法理解为什么。

我的第一个迭代不使用函数,而是一个多行if-else,它得到了相同的错误。单独使用这些功能似乎可以正常工作。

#!/bin/bash

# script to send the new server ip to the users

# get the recent ip address of the system
new_ip=$(ip route get 8.8.8.8 | awk -F"src " 'NR==1{split($2,a," ");print a[1]}')

file=old_ip.txt

function ip_mail(){
 source $file
 if [ $new_ip != $old_ip ]
  then
  # email-address changed for obvIoUs reasons
  mail -s "New Server IP" [hidden]@[hidden].com <<< "$new_ip"
  echo "old_ip=$new_ip" > old_ip.txt
  exit 0
  fi
    
    exit 0
}

function set_old(){
 touch old_ip.txt
 echo "old_ip=$new_ip" > old_ip.txt
 exit 0
}

if [ $file ]
then
 ip_mail()
else
 set_old()
fi

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。