将管道命令输出到变量

将管道命令输出到变量

我正在尝试编写一个小脚本来创建 JSON 文件。我必须将 SSL 证书存储在这个 json 中,因此我必须将 CRT/KEY 文件转换为所需的格式。

是否有解决方案来存储以下结果:

cat $domain.key | sed s/$/\\n/ | tr -d '\n'

在变量内(bash.script)

input_key=`cat $domain.key | sed s/$/\\n/ | tr -d '\n'`

在 cat 之后不运行“sed”(-:

答案1

这样做就可以了:

input_key=$(cat ${domain}.key | sed 's/$/\\n/' | tr -d '\n')

在您的示例中正在sed运行,但我相信正则表达式位中的某些内容正在被 shell 解释。您只需要将正则表达式括在单引号中即可避免任何 shell 解释。以下也适用:

input_key=`cat ${domain}.key | sed 's/$/\\n/' | tr -d '\n'`

相关内容