Как сохранить результат инструкции MySQL в переменной, которая может использоваться bash? [Дубликат]

Это означает, что ваш код использовал ссылочную переменную объекта, которая была установлена ​​в нуль (т. е. она не ссылалась на экземпляр фактического объекта).

Чтобы предотвратить ошибку, объекты, которые могут быть пустыми, должны быть протестированы для null перед тем, как использовать.

if (myvar != null)
{
    // Go ahead and use myvar
    myvar.property = ...
}
else
{
    // Whoops! myvar is null and cannot be used without first
    // assigning it to an instance reference
    // Attempting to use myvar here will result in NullReferenceException
}
49
задан user unknown 19 March 2012 в 12:12
поделиться

2 ответа

Это потому, что java -version записывается в stderr, а не stdout. Вы должны использовать:

version=$(java -version 2>&1)

Чтобы перенаправить stderr на stdout.

Вы можете увидеть его, выполнив следующие 2 команды:

java -version > /dev/null

java -version 2> /dev/null
14
ответ дан bmk 24 August 2018 в 20:20
поделиться
 version=$(java -version 2>&1)

Параметр версии принимает только одну тире, и если вы переадресовываете stderr, то есть, где написано сообщение, вы получите желаемый результат.

В качестве оповещения, используя две дефисы являются неофициальным стандартом для Unix-подобных систем, но поскольку Java пытается быть почти идентичной на разных платформах, это нарушает ожидания Unix / Linux и ведет себя так же в этом отношении, как и в Windows, и, как я подозреваю, в Mac OS ,

60
ответ дан user unknown 24 August 2018 в 20:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: