【问题标题】:Sudo and backticks?须藤和反引号?
【发布时间】:2015-01-10 15:34:38
【问题描述】:

运行以下命令时:

sudo sh -c "sed s/sda1-uuid/`blkid -s UUID -o value /dev/sda1`/ -i /etc/crypttab"

结果错误,因为blkid -s UUID -o value /dev/sda1不是以root权限执行的。

我做错了什么?

【问题讨论】:

  • 尝试单引号而不是双引号。
  • 请注意,反引号已被弃用,取而代之的是 $()。 (虽然它与OP的问题无关。)
  • 首先将blkid -s UUID -o value /dev/sda1的输出存储到一个变量中,然后在sed中替换。
  • @user4440222 您收到的错误是什么?
  • 我不知道美元括号是首选,但在这里了解更多:unix.stackexchange.com/questions/126927/…

标签: linux bash sudo


【解决方案1】:

通过尝试 cmets 中的建议,以下命令现在按预期工作:

sudo sh -c 'sed s/sda1-uuid/$(blkid -s UUID -o value /dev/sda1)/ -i /etc/crypttab'

【讨论】:

    猜你喜欢
    • 2011-08-12
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 2014-04-11
    • 2012-11-27
    • 1970-01-01
    相关资源
    最近更新 更多