Используйте /usr/bin/time
вместо оболочки, созданной -в time
. Затем запишите stderr
в отдельный файл из stdout
вашей команды application
. Поскольку прошедшее реальное время является первым словом вывода time
, его легко получить с помощью awk
.
grep
имеет переключатель -q
, поэтому нет необходимости перенаправлять на /dev/null
.
Наконец, sleep
принимает аргумент за секунды, поэтому я не думаю, что sleep 5m
будет делать то, что вы хотите. Однако синтаксис принят, поэтому я оставил его в силе.
for n in {1..1000}
do
/usr/bin/time application login -u "user" \
-p '******' "host.domain.com" > login.out 2>time.out
realtime=$(awk '{print $1}' time.out)
echo -n "$(date) real $realtime " >> output.txt
if grep -q "Succeeded" login.out; then
echo "Succeeded" >> output.txt
else
echo "Failed" >> output.txt
fi
sleep 5m
done