Попробуйте это:[^ ]* *$
Или просто, если применимо,gawk '{print $NF}'
Я бы использовал цикл, который выполняет неблокирующие -проверки. Что-то вроде:
#!/bin/sh
while [ 1 ]; do
if [ $(nc -z server1 1521) ] || [ $(nc -z server2 1521) ]; then
break
fi
sleep 1 # if desired
done
start_apps.sh
Этот цикл будет выполняться до тех пор, пока не будет выполнено одно из условий.