“-bash: !”: event not found"、echo > sudo permission denied

1. “-bash: !”: event not found”

比如当我们在 linux 命令行输入echo "Reboot your instance!"时,便会给出标题的错误信息。之所以如此,在于对于 bash !是一个有着特殊含义的字符,常常用来指代之前的命令。

$ history | less
$ !某一数字
$ !! 运行上一命令

Understanding the exclamation mark (!) in bash

因此,这里 echo "reboot your instance!"中的感叹号,便是将以 !之后的字符为开始的上一条命令。

常用的解决方案如下:

  • set +o histexpand/set +H,关闭 bash 中的 history expansion(历史拓展)

2. 对 echo 输出重定向(>)时:permission denied

Cannot echo “hello” > x.txt even with sudo?
Redirect the output using sudo

$ sudo echo "hello" > f.txt

即使使用 sudo,仍然提示 permission denied,这是因为 bash 中的重定向操作在 sudo 生效之前已经开始执行了。

解决方法如下两种:

  • sudo bash -c 'echo "hello" > f.txt'
  • echo "hello" | sudo tee f.txt

转载于:https://www.cnblogs.com/mtcnn/p/9421588.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值