私は問題を抱えています.bashを書くのは初めてです。csv ファイルを解析して、いくつかのことを確認しています。チェックが真の場合、後でファイルに書き込まれる変数を変更します。入力ファイルを読み取り、ファイルにも出力しています。特定の引数がTrueをチェックする場合、ユーザーにプロンプトを表示し、ユーザーが情報が一致することを確認するまでスクリプトを一時停止します(手動確認)。
プロンプトが表示されない最新の試みがあります。出力の読み取りと書き込みを続行するだけです。出力が出力ファイルに直接送られるため、私はかなり確信していますが、私が立ち往生している端末ウィンドウにプロンプトを表示する方法がわかりません。
INPUT=$TMPSAVE
IFS=,
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read cdwon cdwod manu_date hp_sn manu_sn wiped_by wiped_date checked_by disposition readonly
do
for i in ${!allassigned[@]}
do
if [[ -n $manu_sn ]]
then
if echo ${allassigned[i]} | grep -q $manu_sn
then
physicaldrive=${allassigned[i-1]}
disk=$(hpacucli ctrl slot=${SLOT} show config detail | grep -B 4 ${physicaldrive} | head -1 | awk '{print $NF}');
if [[ -n $disk ]]; then #proceed to wipe drive
mount ${disk}${PRIMARY} ${MOUNT}
if [ -e $DIR ]; then
####### the file exists, now what to do with it? Automatcially prompt user?
cat $DIR > /dev/tty
echo "Does the drive serial number (${allassigned[i]}) match what was provided from the database ($manu_sn)? (y/n)" > /dev/tty
read
if [ "$REPLY" == "Y" ] || [ "$REPLY" == "y" ] || [ "$REPLY" == "YES" ] || [ "$REPLY" == "yes" ]; then
checked_by=$username
checked_bydate=`date`
fi
fi
fi
fi
fi
done
echo "$cdwon,$cdwod,$manu_date,$hp_sn,$manu_sn,$wiped_by,$wiped_date,$checked_by,$disposition,$readonly";
continue;
done < $INPUT > $OUTPUT