2015-01-10 74 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'