我试图自动化在我的arch的pacman.conf文件中添加一个存储库源,但在我的shell脚本中使用echo命令。然而,它失败了这样: –
sudo echo "[archlinuxfr]" >> /etc/pacman.conf sudo echo "Server = http://repo.archlinux.fr/\$arch" >> /etc/pacman.conf sudo echo " " >> /etc/pacman.conf -bash: /etc/pacman.conf: Permission denied
如果我使用vim手动更改/etc/pacman.conf,通过做
sudo vim /etc/pacman.conf
并退出vim与:wq,一切工作正常,我的pacman.conf已手动更新,没有“权限被拒绝”投诉。
为什么会这样?如何让sudo echo工作? (btw,我尝试使用sudo猫,但失败,Permission也拒绝)
问题是重定向正在由您的原始shell处理,而不是由sudo处理。贝壳不能读头脑,不知道那个特定>>是为sudo而不是为它。您需要(a)引用重定向,因此将其传递给sudo,并且(b)使用sudo -s,以便sudo使用shell处理引用的重定向。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。