#!/bin/bash
cat fileA.txt | sed 1d | while IFS=';' read -r line; do #read fileA.txt starting with line #2
name=$(echo $line | awk '{print $1}') #find names in each line/column 1 of the table
lock_status=$(grep $name fileB.txt | awk '{print $5}') # find lock/unlock status in fileB.txt
if [[ "$lock_status" -eq 0 ]];then
echo "Locked: To mail the user : replace echo by the command mail";
else
echo "unlocked";
fi
done
Итак, я немного повозился с этим, и похоже, что проблема была просто в том, что grep
буферизует свой вывод, а затем не показывает его даже после завершения команды... все еще не уверен, почему это кейс.
ping google.com | grep --line-buffered '.'
ИЛИ
ping google.com | stdbuf --output=L grep '.'
Согласно этому ответу на SO вывод может не отображаться из-за того, что буфер вывода еще не заполнен. Так что это объясняет, почему даже после выхода из программы вывод не отображается.