8

我正在尝试创建一个 .sh 脚本来检查 /etc/hosts 中是否存在像“teamspeak.com”这样的 IP/域,如果不存在,那么我想在主机文件中添加一些内容。

现在我正在尝试这个:

if ! grep -q "teamspeak.com == teamspeak.com" /etc/hosts; then
    echo "Exists"
else
    echo "Add to etc host ting here" >> /etc/hosts;

fi
4

1 回答 1

13
grep -q 

如果找到任何匹配项,则以 0 退出,否则以 1 退出,因此您需要删除 ! 和 == 比较:

if grep -q "teamspeak.com" /etc/hosts; then
    echo "Exists"
else
    echo "Add to etc host ting here" >> /etc/hosts;
fi

请注意,它不是基于单词的搜索,因此它也会找到 myteamspeak.com 或 teamspeak.com.us。要获取整个主机名,您需要使用带有分隔符的 cut 命令。

要添加新主机,请使用:

echo "127.0.0.1 teamspeak.com" >> /etc/hosts
于 2015-03-16T17:03:28.853 回答