2015-01-10 3 views
1

При выполнении следующей команды:Судо и backticks?

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

результат неверен, поскольку blkid -s UUID -o value /dev/sda1 не выполняется с привилегиями суперпользователя.

Что я делаю неправильно?

+0

Попробуйте сингл, а не двойные кавычки. –

+0

Обратите внимание, что обратные ссылки устарели в пользу '$()'. (Хотя это не имеет ничего общего с проблемой OP.) – Biffen

+0

сначала сохранит вывод 'blkid -s UUID -o value/dev/sda1' переменной и позже заменит в sed. –

ответ

0

Стараясь предложения в комментариях, следующая команда теперь работает, как ожидалось:

sudo sh -c 'sed s/sda1-uuid/$(blkid -s UUID -o value /dev/sda1)/ -i /etc/crypttab' 
Смежные вопросы