庆典 - 比较变量
问题描述:
我试图做在bash以下:庆典 - 比较变量
得到我的外部IP
读取文件的第一行
比较这两个值
如果不是同样,删除文件,并重新创建它与当前地址
我真的不知道为什么这会失败,我的脚本所做的是输出我的当前地址和第一个该文件的行(其中的方式简直是“ASD”进行测试)
#!/bin/bash
IP= curl http://ipecho.net/plain
OLD= head -n 1 /Users/emse/Downloads/IP/IP.txt
if [ "$IP" = "$OLD" ]; then
exit
else
rm /Users/emse/Downloads/IP/IP.txt
$IP> /Users/emse/Downloads/IP/IP.txt
exit
fi
答
在脚本中一些明显的问题:
- 不要把空间上等号,如果你的任何一方想做分配
- 你想要的
curl
输出,head
所以他们包装在反引号(') - 要写
$IP
入档,不执行它的内容作为一个命令,所以echo
它
脚本变为:
#!/bin/bash
IP=`curl http://ipecho.net/plain`
OLD=`head -n 1 /Users/emse/Downloads/IP/IP.txt`
if [ "$IP" = "$OLD" ]; then
exit
else
rm /Users/emse/Downloads/IP/IP.txt
echo $IP > /Users/emse/Downloads/IP/IP.txt
exit
fi
答
出色答卷清波,只是精致的一点点位:
#!/bin/bash
IP=`curl http://ipecho.net/plain`
OLD=`head -n 1 /Users/emse/Downloads/IP/IP.txt`
if [ "$IP" != "$OLD" ]; then
echo $IP > /Users/emse/Downloads/IP/IP.txt # > creates/truncates/replaces IP.txt
fi
+0
看看呀清理了很多。此外,文件名可以作为变量:-) – qingbo 2014-09-27 08:06:01
在http://www.shellcheck.net/ – Cyrus 2014-09-27 07:36:45