Если вы выражаете свою команду без одинарных кавычек, вы можете поместить ее в одинарные кавычки и выполнить ее через промежуточную оболочку.
Чтобы выполнить это как root:
echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock
Напишите команду другим способом, который не использует ':
echo clock_hctosys=\"YES\" >> /etc/conf.d/hwclock
Затем вызовите sudo sh -c …:
sudo sh -c 'echo clock_hctosys=\"YES\" >> /etc/conf.d/hwclock'
Кроме того, чтобы записать вывод в файл, в который может записать только root, вызовите sudo tee. Передайте -aопцию, чтобы teeдобавить к файлу назначения, в противном случае файл будет усечен.
echo 'clock_hctosys="YES"' | sudo tee -a /etc/conf.d/hwclock >/dev/null
Для более сложных модификаций файлов, вы можете позвонить sudo sed, sudo ed, sudo perl, ...
В качестве альтернативы, используйте приличный редактор и заставьте его называть sudo В Emacs, откройте /sudo:/etc/conf.d/hwclock. В Vim вызовите :w !sudo tee %запись в открытый файл от имени пользователя root или используйте плагин sudo.vim . Или иди с конца sudo и позвони sudoedit /etc/conf.d/hwclock.
Или вы можете уступить темной стороне и запустить оболочку от имени root.
$ sudo -i
# echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock
teeкоманды запускаются от имени root, а не основная команда, которая может быть сложной и склонной к неправильному поведению. (не случайecho)