2015-01-10 37 views
1

当运行以下命令:Sudo和反引号?

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权限执行。

我在做什么错?

+0

试单,而不是双引号。 –

+0

请注意反引号不赞成使用'$()'。 (尽管它与OP的问题无关。) – Biffen

+0

首先将blkid -s UUID -o值/ dev/sda1的输出存储到变量中,然后在sed中进行替换。 –

回答

0

通过尝试在评论中提出的建议,下面的命令现在按预期工作:

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