bash - 在 Mac 上使用脚本更改主机文件

标签 bash macos terminal sudo hosts

我正在尝试向 Mac 上的主机文件添加一行。 我使用的命令是:

sudo echo "192.168.99.100 test" >> /private/etc/hosts

此方法确实适用于 Windows 和 Linux,但在 Mac 上,即使在 sudo 模式下运行,我也无权运行它。

有人可以告诉我我做错了什么以及如何解决这个问题吗?

斯特凡·詹森

最佳答案

尝试 echo '192.168.99.100 测试' | sudo tee -a/private/etc/hosts

>> 是 shell 本身的语法,它以您的用户身份运行。 sudo echo "192.168.99.100 test">>/private/etc/hosts 以 root 身份运行 echo "192.168.99.100 test">> “管道到文件”以您的用户身份运行。

tee 是一个普通命令,您可以使用 sudo 以 root 身份运行,它会输出到 stdout 和文件,因此 echo 'line' | sudo tee -a file 会做你想做的事。 tee -a 将附加到文件而不是覆盖它。

关于bash - 在 Mac 上使用脚本更改主机文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37001468/

相关文章:

python - rm -rf 不通过 python fork execl 脚本删除目录

linux - 从匹配多个模式的一个文件创建新的多个文件的快速方法

python - 下载 Azure 存储容器中的所有 blob

java - 从 OS X Applet 调用 java.awt.Toolkit.getDefaultToolkit() 时出现空指针异常

c++ - “ future ”已在此处明确标记为已删除

unix - 永恒颜色 : Unknown terminal type

Bash:在 "Vim: Warning: Output not to a terminal"时杀死 Vim

bash:parse_git_branch:找不到命令

ruby-on-rails - Sidekiq worker 每两秒显示 'ERROR: heartbeat: "\xE 2"from ASCII-8BIT to UTF-8'

ios - Bonjour 中的缓慢名称解析