これは以前に聞いたことがあると思います。聞いたことがある場合は申し訳ありませんが、見つかりません。
次の「mypassword」を鳩小屋のSHA512-CRYPTパスワードに置き換えようとしていますが、ドル記号が台無しになっていて、エスケープする方法がわかりません。
から生成されたパスワードdoveadm pw -s SHA512-CRYPT -p ${rootemailpw}
は次のようになります。これには、いくつかのドル記号が含まれています。
{SHA512-CRYPT}$6$sujue1sr0abLZisA$Dq1qtz422woyR/A4wDaJ9JYByKHis27FO.mO5EfUCDuI/PRSawxgCRGA3Oq/LE4Nbr32nCr4731BCPIotmRNR0
これが私が使用しているスクリプトです:
rootemailpw=$(</dev/urandom tr -dc A-Za-z0-9 | head -c12)
rootpw=$(doveadm pw -s SHA512-CRYPT -p ${rootemailpw})
cat <<'EOF' > tmp
USE `postfix`;
INSERT INTO `users` (`username`,`password`) VALUES ('root@localhost','mypassword');
EOF
sed -i "s/mypassword/${rootpw}/" tmp
では、$記号を適切にエスケープする方法s/mypassword/${rootpw}/