我有一个 bash 脚本,它会将传递给它的任何单词作为参数,然后使用 openssl 命令加密该单词。从那里我想获取返回的字符串并使用 sed 将其写入另一个文件。加密值有时包含“/”字符(但不总是),此时 sed 无法运行。
以下是脚本的要点:
#!/bin/bash
fileDirectory"/etc/ci"
fileName="key.bin"
encryptedOSPFPW='echo $1 | openssl enc -a -A -aes-256-cbc -md sha256 -pass file:"$fileDirectory"/"$fileName"'
sed -i "s/OSPFPW/$encryptedOSPFPW/g" /etc/quagga/ospfd.conf
exit 0
我怎样才能调整 sed 命令,以便它将替换返回的任何内容。我知道如果我用单引号替换双引号,sed 将按字面意思接受提供给它的任何内容,但是当我使用变量时这不起作用。
谢谢
这个问题的答案是在 sed 命令中使用不同的分隔符。我最终使用了以下命令: