我目前正在编写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中的输入输入到了预定的文件中。感谢您的帮助。
1条答案
按热度按时间li9yvcax1#
我不确定我是否完全理解你的意图,但听起来你似乎把事情弄得比实际需要的复杂得多。这样做有用吗?
cat
简单地将它所得到的作为输入的内容复制到它的输出,直到它收到一个文件结束符(从终端按Control-D)。用你想要存储证书的任何文件替换pastedcert.cer
。如果你想替换“已经存在的.cer文件”的内容,就用那个文件名。如果你想合并它或附加它或其他什么,你需要澄清这一点。您还可以将粘贴的证书存储在shell变量中,如下所示: