_LETTERS_ONLY=`echo $1 | awk '{if ($0~/[^a‑zA‑Z]/) print "1")'`
if [ "$_LETTERS_ONLY" != "" ]
then
# ошибки
return 1
else
# содержит только символы
return 0
fi
}
check_duplicate() {
#check_duplicate
#проверка дублирования номера служащего
#для вызова: check_duplicate строка _CODE=$1
MATCH=`grep "$_CODE\>" $DBFILE`
echo $_CODE
if [ "$MATCH"="" ]; then
return 0 # нет дубликата
else
return 1 # дубликат обнаружен
fi
}
add_rec()
{
# add_rec
# == STAFF NUMBER
while :
do
echo -n "Employee Staff Number :"
read NUM
if [ "$NUM" != "" ]; then
if a_number $NUM; then
NUM_PASS=0
else
NUM_PASS=1
fi
if length_check $NUM 10; then
LEN_PASS=0
else
LEN_PASS=1
fi
# проверка наличия дубликатов… if check_duplicate $NUM; then
DUPLICATED=0
else
DUPLICATE=1
echo "Staff Number: There ls already a employee with this number" continue_prompt
fi
if [ "$LEN_PASS"="0" -a "$NUM_PASS"="0" -a "$DUPLICATE"="0" ] then
break
else
echo "Staff Number: Non‑Numeric or Too Many Numbers In Field" continue_prompt
fi
else
echo "Staff Number: No Input Detected, This Field Requires a Number" continue_prompt fi done
# == Имя
while :
do
echo -n "Employee's First Name:"
read F_NAME
if [ "$F_NAME" != "" ]; then
if characters $F_NAME; then
F_NAME_PASS=0
else
F_NAME_PASS=1
fi
if length_check $F_NAME 20; then
LEN_PASS=0
else
LEN_PASS=1
fi
# oбa условия должны быть истинными для выхода из этого цикла if [ "$LEN_PASS"="0" -a "$F_NAME_PASS"="0" ]; then
break
else
echo "Staff First Name: Non‑Character or Too Many Characters In Field" continue_prompt
fi
else
echo "Staff First Name: No Input Detected, This Field Requires Characters"
continue_prompt
fi
done
# == Фамилия
while :
do
echo -n "Employee's Surname :"
read S_NAME
if [ "$S_NAME" != "" ]; then if characters $S_NAME; then
$_NAME_PASS=0
else
$_NAME_PASS=1
fi
if length_check $S_NAME 20; then
LEN_PASS=0
else
LEN_PASS=1
fi
if [ "$LEN_PASS"="0" -a "$S_NAME_PASS"= "0" ]; then
break else
echo "Staff Surname: Non‑Character or Too Many Characters In Field" continue_prompt fi else
echo "Staff Surname: No Input Detected, This Field Requires Characters" continue_prompt fi done
# == Отдел
while :
do
echo -n "Company Department :" read DEPART case $DEPART in
ACCOUNTS|Accounts|accounts) break;;
SALES|Sales|sales) break;; IT|It|it) break;;
CLAIMS|Claims|claims) break;;
Services|SERVICES|services) break;;
*) echo "Department: Accounts, Sales, IT, Claims, Services";; esac done )
# основная программа
clear
echo -e "\t\t\tADD A EMPLOYEE RECORD"
if [ -s $DBFILE ]; then :
else
echo "Information: Creating new file to add employee records"
>$DBFILE fi