Mac OS X“托管”文件,我可以包含其他文件吗?

Modified on: Fri, 09 Nov 2018 00:40:03 +0800

我正在处理一些自动化脚本,以便在访问我经常访问的不同网络时配置我的网络设置,托管文件内容和/ etc / resolver文件。

有些组合可能需要更改主机文件,我希望避免设置不同组合的矩阵,在整个地方复制共享设置。

例如,我可能 on 工作网络,即。在建筑物中,或者我可以通过VPN访问它。在这两种情况下,我都需要在hosts文件中添加一些设置,以便网络正常工作,有些是共享的,有些则不是。另外,如果我在VPN上,我可能在家,在这种情况下,我 想要添加的主机文件中还有一些其他设置。

因此,我希望不是为“家庭,通过VPN访问工作”而不是“家庭,不访问工作”等创建一个文件,有没有办法让我包含其他文件?

例如,假设以下假设语法有效:

#!include home.hosts
#!include work.hosts

127.0.0.1 localhost
::1 localhost

这样,我可以简单地清除这两个额外文件中的一个或两个的内容,剩下的就是。

或者,除此之外,有没有比这更好的方法来构建一个小文件,将这些文件连接到一个新的主机文件中,作为自动化设置的一部分,我首先要清除其中一些额外的文件,然后我调用脚本从那些额外的文件重建单个主机文件?

最佳答案

我不知道任何包含的可能性。但是,我要做的是在我的hosts文件中创建部分,然后使用脚本来评论每个部分中的行,例如sed。

这样你的文件就像

#%%%HOME.HOSTS%%% #Put here the contents of home.hosts #%%%WORK.HOSTS%%% #Put here the contents of work.hosts #%%%ALWAYS_ON%%% 127.0.0.1 localhost ::1 localhost

编辑:快速添加以修改字段。

删除HOME.HOSTS的评论

#%%%HOME.HOSTS%%%
#Put here the contents of home.hosts
#%%%WORK.HOSTS%%%
#Put here the contents of work.hosts

#%%%ALWAYS_ON%%%
127.0.0.1 localhost
::1 localhost

放回HOME.HOSTS的评论

 sed -i '/#%%%HOME.HOSTS/,/#%%%/s/^#\([^%]\)/\1/g' hosts

这是一个基本版本,需要根据您的需要进行调整。

作者:,Karolos

相关问答

添加新评论