linux 将证书内容输入到bash脚本中,然后将该输入解析到现有文件中

ars1skjm  于 2022-11-22  发布在  Linux
关注(0)|答案(1)|浏览(100)

我目前正在编写bash脚本,以自动生成CSR,确认现有证书名称(为了避免必须重新配置应用程序)将新生成的证书从内部WindowsCA输入到脚本先前创建的现有.cer文件中,然后将其移动到相关目录并停止/启动应用程序。除了将cert文件内容输入到脚本中之外,我已经做好了一切工作。我希望在bash脚本运行时,最终用户可以得到一个提示,将cert内容粘贴到控制台中。然后,这将需要将证书内容插入到已经创建的中。cer文件,该文件在脚本中指定为变量(证书文件包含服务器的主机名和域)。
我尝试过使用“read”和“heredoc”,下面是我尝试过的一些例子:

echo Please paste the new certificate contents here

    read -rp input1 -d $'\04' << EOF
    
EOF

在尝试了各种组合之后,我已经能够让脚本接受多行证书文件内容,但是它不会将该内容插入到已经存在的文件中。
我也试过:

read -rp input -d $'\04' | cat << $filename > EOF
EOF

还有这个:

cat <<EOF > blank.cer

echo Paste here

EOF

但也不是很幸运。使用heredoc似乎解决了证书文件有多行的问题,但它将heredoc中的输入输入到了预定的文件中。感谢您的帮助。

li9yvcax

li9yvcax1#

我不确定我是否完全理解你的意图,但听起来你似乎把事情弄得比实际需要的复杂得多。这样做有用吗?

echo "Please paste the new certificate contents here:"
cat >pastedcert.cer

cat简单地将它所得到的作为输入的内容复制到它的输出,直到它收到一个文件结束符(从终端按Control-D)。用你想要存储证书的任何文件替换pastedcert.cer。如果你想替换“已经存在的.cer文件”的内容,就用那个文件名。如果你想合并它或附加它或其他什么,你需要澄清这一点。
您还可以将粘贴的证书存储在shell变量中,如下所示:

echo "Please paste the new certificate contents here:"
pastedcert=$(cat)

相关问题