AWK на Solaris - это старый AWK.Обычно пользователи Solaris используют nawk для получения преимуществ «нового» AWK.
Я не думаю, что старый AWK поддерживает многосимвольное значение в качестве разделителя полей, как вы определили -F Version
(хороший трюк!),Если вам повезет, добавьте кавычки вокруг этого значения, чтобы решить эту проблему.
Скорее всего, вы должны сделать свой скрипт умным, чтобы назначать nawk при работе в Solaris.
Что-то вроде
case $( uname -a ) in
*Solaris* ) awk=nawk ;;
* ) awk=awk
esac
tnsping tucson | grep Version | ${awk} -F "Version" '{print $2}' | ${awk} '{print $1}'
должен добиться цели.У меня больше нет доступа к системе Solaris, поэтому я не могу убедиться, что это сработает, но я бы удивился, если бы это не сработало.
Хм, теперь кое-что из моего прошлого говорит мнечто даже nawk в Solaris не любил строки как FieldSeps.Возможно, вам удастся установить awksome gawk ИЛИ другое решение (кажется, вы уже в пути), просто
tnsping tucson | ${awk} '/Version/ {sub(/,*Version /, "", $0) ; sub(/.*$/, "", $0); print $0; exit}'
, и вам все равно придется сократить номер своей версии.Кроме того, с фильтром в AWK для '/ Version /' вам не нужен промежуточный интервал, и мы исключили дополнительный вызов AWK.
Надеюсь, это поможет.