日付設定シーケンスの中身を担うdateset.shについてです。
やはり whileループを回しています。日付を6桁の整数で要求されますが、これは既存のデータベースの形式と整合させるためです。データベースのホスト名他詳細は${host_name}などとして秘匿しています。テーブル中に入力した日付が存在すればシェル変数${file}に値が入ります。
その場合、if文の分岐で真の側に進み、keyword,date,input_dateなどの変数を作成することになります。最後にbreak文でループを抜け、main.shへ戻ります。ちなみに、このdateset.shはmain.shの中でカレントシェルとして実行していますので、dateset.sh中で作成したkeyword,date,input_dateなどの変数の値はmain.shへ引き継がれます。
#! /bin/bash while : do nonewline "授業の日を6桁の数字で入力して下さい " read RESP file=`mysql -N -h ${host_name} ${db_name} << _SQL_ select file from ${table_name} where file like "${RESP}%"; _SQL_` if [ ! -z ${file} ] then YY=`echo ${file} | cut -c1-2` MM=`echo ${file} | cut -c3-4` DD=`echo ${file} | cut -c5-6` keyword="20${YY}-${MM}-${DD}" date=${YY}${MM}${DD} nonewline "リスニング日を6桁の数字で入力して下さい " read RESP YY=`echo ${RESP} | cut -c1-2` MM=`echo ${RESP} | cut -c3-4` DD=`echo ${RESP} | cut -c5-6` input_date="20${YY}-${MM}-${DD}" break else printf "その日付は存在しません\n" fi done