У меня есть сценарий, над которым я сейчас работаю. И я столкнулся с проблемой, когда мне нужно предложить пользователю ввести строку, затем зашифровать ее с помощью sha-512, а затем вставить ее в определенный файл.
Пока что у меня есть:
pass= grub-crypt --sha512
Который возвращает хэшированное значение, которое мне нужно. Однако я сталкиваюсь с проблемой, когда sed будет читать специальные символы из хеша.
Я тогда попробовал:
sed -i.bak "20i$pass" /foo/bar
Но это не работает. Я предполагаю, что он все еще читает специальные символы, когда он заменяет переменную для символов в строке. Поэтому я хотел попробовать добавить escape-символ перед каждым символом в строке следующим образом:
sed 's:\(.\{1\\}\)\1:g'
Тем не менее, это не работает для меня тоже. Я новичок в седе, поэтому любое объяснение будет очень полезно. Спасибо.