bashスクリプトの入力をスクリプト内で実行するコマンドに渡す必要があります。私は何をすべきかわかりません。私は一日中似たようなものを探していましたbash
。
#!/bin/env bash
# This script is used for generating ssl cert's for websites
# ==========================================================
# Version 1.0
# ==========================================================
# Working dir
# ===========
cd "$(dirname "$0")"
# Debugging
# =========
set -x
# Imput options
# =============
read -p "Domain name: " domain_name;
read -p "Enter password: " pass;
# Verify if there is imput "conditional expressions"
# man test; help [[
# ==================================================
if [[ $domain_name ]]; then
openssl genrsa -aes256 -out root/ca/intermediate/private/${domain_name}.key.pem 2048
chmod 400 root/ca/intermediate/private/${domain_name}.key.pem
openssl req -config root/ca/intermediate/openssl.cnf -key root/ca/intermediate/private/${domain_name}.key.pem -new -sha256 -out root/ca/intermediate/csr/${domain_name}.csr.pem
openssl ca -config root/ca/intermediate/openssl.cnf -extensions server_cert -days 475 -notext -md sha256 -in root/ca/intermediate/csr/${domain_name}.csr.pem -out root/ca/intermediate/certs/${domain_name}.cert.pem
chmod 444 root/ca/intermediate/certs/${domain_name}.cert.pem
else
echo "Insert a domain name."
fi
if openssl x509 -noout -text -in intermediate/certs/${domain_name}.cert.pem; then
openssl verify -CAfile root/ca/intermediate/certs/ca-chain.cert.pem intermediate/certs/${domain_name}.cert.pem
fi
ssl
実際に失敗せずに自己署名証明書を自動的に生成するには、スクリプトが必要です。
渡す必要がある入力はpassword
、ですdomain name
。
答え1
同様の方法を使用してBashでこれを行うことができます。
#!/bin/bash
domain="domain.com"
pass="somethingCompleX"
your_script.sh <<EOF
$domain
$password
EOF
あなたの質問に提供されているスクリプト「your_script.sh」を使用してください。
この構文を使用すると、スクリプト入力にいくつかの文字列を渡すことができます。最初は、<<EOF
スクリプトに渡す文字列の終わりを示す「ファイルの終わり」マークを提供します。以降のすべての文字はスクリプトに渡されるため、
your_script.sh <<EOF
foo
bar
EOF
同じ
$ your_script.sh
Domain name: foo
password: bar
これも参考にしてくださいstackoverflowへの回答