Чтобы получить версию Java, я запускаю это в bash (что мне действительно нужно, это 1.8 или 1.8.0_171)
$ java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
В моем тестовом скрипте было бы просто получить первую строку, поэтому я выполняю это:
java -version | grep java
echo return is $?
, который возвращает это:
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
return is 1
В соответствии с man-страницей, возвращаемая grep указывает, что она не имела ошибок, но не нашла совпадений, даже если результаты "java -version" напечатаны.
Я пробовал grep с несколькими различными шаблонами поиска и пробовал sed и aux, используя Google для получения помощи, а также с теми же результатами.
Что я делаю не так?