Страница 1 из 1

Добавить в скрипт bash

Добавлено: 2015-05-23 10:54:36
harackter
Есть скрипт рабочий,нужно добавить функцию чтоб каждый раз при запуске запрашивал имя домена.
Подскажите как реализовать что-то типа такого:

read -p "=> Введите имя домена:" $

Сам скрипт

#!/bin/bash
# /opt/generatedkim.sh
die () {
echo >&2 "$@"
exit 1
}

[ "$#" -eq 1 ] || die "1 argument required, $# provided, domain required, ex: ./script example.com"

cwd=`pwd`
opendkim="/etc/opendkim"
location="$opendkim/keys/$1"
[ -d "$location" ] && die "There is already a directory in the folder, delete the folder if you want to create a new one"

mkdir -p "$location"
cd "$location"
opendkim-genkey -d $1 -s mail
chown opendkim:opendkim *
chown opendkim:opendkim "$location"
chmod u=rw,go-rwx *
echo "$1 $1:mail:$location/mail.private" >> "$opendkim/KeyTable"
echo "*@$1 $1" >> "$opendkim/SigningTable"
echo "$1" >> "$opendkim/TrustedHosts"
echo "mail.$1" >> "$opendkim/TrustedHosts"
echo
echo "Put this in the DNS ZONE for domain: $1"
echo
cat "$location/mail.txt"
echo
cd "$cwd"

P.s Добавляю это в меню самого скрипта,

Добавить в скрипт bash

Добавлено: 2015-05-23 16:06:35
harackter

Код: Выделить всё

#!/bin/bash
# /opt/generatedkim.sh
while [ "$#" -ne 1 ] 
do
    read -p "=> Введите имя домена: "
    set -- $REPLY
done    
 
opendkim="/etc/opendkim"
location="$opendkim/keys/$1"
 
if [ -s "$location" ] 
then 
    echo -n "Директория для домена $1 существует, перезаписать? (yes/[N]o): "
    read -n 1 renew
    if [[ ${renew:-n} != [YyДд] ]]
    then
        exit 1
    else
        rm -rf "$location"/*
        have_before=true
    fi
fi
mkdir -p "$location"
cd "$location"
 
opendkim-genkey -d $1 -s mail
chown -R opendkim:opendkim .
chmod u=rw,go-rwx *
 
if ! ${have_before:-false}
then
    echo "$1 $1:mail:$location/mail.private" >> "$opendkim/KeyTable"
    echo "*@$1 $1" >> "$opendkim/SigningTable"
    echo "$1" >> "$opendkim/TrustedHosts"
    echo "mail.$1" >> "$opendkim/TrustedHosts"
fi
 
echo
echo "Put this in the DNS ZONE for domain: $1"
echo
cat "$location/mail.txt"
echo