Las*_*sen 10 automation hosts osx-lion macos
我正在编写一些自动化脚本来配置我的网络设置、主机文件内容和 /etc/resolver 文件,当访问我经常访问的不同网络时。
可能会发生一些组合,所有这些组合都需要更改主机文件,我想避免必须设置不同组合的矩阵,从而避免到处复制共享设置。
例如,我可能在工作网络上,即。在大楼里,或者我可以通过 VPN 访问它。在这两种情况下,我都需要向主机文件添加一些设置才能使网络正常工作,有些是共享的,有些不是。此外,如果我是通过VPN,我可能是在家里,在这种情况下,有在主机其他一些设置文件我也想补充。
因此,我希望不是为“家庭,通过 VPN 访问工作”与“家庭,不访问工作”等创建一个文件,有没有办法让我包含其他文件?
例如,假设以下假设语法有效:
#!include home.hosts
#!include work.hosts
127.0.0.1 localhost
::1 localhost
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我可以简单地清除这两个额外文件中的一个或两个的内容,而其余的则保留。
或者,除此之外,是否有更好的方法来做到这一点,而不是仅仅构建一个小脚本,将这些文件连接到一个新的主机文件中,作为我自动化设置的一部分,我首先清除一些额外的文件,然后我调用脚本从那些额外的文件重建单个主机文件?
我不知道任何包含的可能性。然而,我要做的是在我的主机文件中创建部分,然后使用脚本来注释每个部分中的行,例如使用 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
Run Code Online (Sandbox Code Playgroud)
编辑:添加快速修改字段的尝试。
删除 HOME.HOSTS 的评论
sed -i '/#%%%HOME.HOSTS/,/#%%%/s/^#\([^%]\)/\1/g' hosts
Run Code Online (Sandbox Code Playgroud)
放回 HOME.HOSTS 的评论
sed -i '/#%%%HOME.HOSTS/,/#%%%/s/^\([^#]\)/#\1/g' hosts
Run Code Online (Sandbox Code Playgroud)
这是一个基本版本,需要根据您的需要进行调整。
| 归档时间: |
|
| 查看次数: |
4142 次 |
| 最近记录: |