У меня есть две следующие переменные
SampleOutput=`some command giving output`
Status=`echo "$SampleOutput" | grep -qs "Active"`
echo $SampleOutput
echo $Status
Здесь $SampleOutput имеет значение AgentEnable=Active bla bla bla.
Тем не менее, $Status идет как blank, я не уверен, почему $Status отображается пустым, когда он должен иметь значение AgentEnable=Active.
Вы думали о том, чтобы запустить echo "$SampleOutput" | grep -qs "Active" самостоятельно, чтобы посмотреть, каков его результат?





При использовании grep -q вы не получаете никакого вывода от grep. Доступен только статус возврата, который вы можете получить с помощью:
grep -qs "Enable" <<< "$SampleOutput"
Status=$?
Согласно man grep:
-q, --quiet, --silentQuiet mode: suppress normal output. grep will only search a file until a match has been found, making searches potentially less expensive.
Обратите внимание, что если вы не используете SampleOutput где-либо еще, вы можете напрямую использовать:
some command | grep -qs "Enable"
Status=$?
Рекомендую прочитать этот пост stackoverflow.com/questions/9449778/…