От kexec
страница справочника:
-e (--exec)
Run the currently loaded kernel. Note that it will reboot into
the loaded kernel without calling shutdown(8).
Если Ваш Det.xml
всегда собирается быть похожими на это (например, не будет иметь никого дополнительным ResponseType
узлы), можно просто использовать это:
xmllint --xpath 'string(//ResponseType)' Det.xml
И это выложит: success
Если Ваш xmllint не имеет xpath по некоторым причинам, можно всегда отступать к регулярным выражениям для этого вида вещи:
grep -Po '(?<=<ResponseType>)\w+(?=</ResponseType>)' Det.xml
Это использует регулярные выражения Perl для обеспечения положительного взгляда aheads / взгляд behinds и только показывает подобранную часть (не целая строка). Это произведет то же как выше, не используя xmllint / xpath вообще.
Поскольку вы искали решение с использованием xmllint
без параметра - xmlpath
, у меня работает следующее:
echo "cat //ResponseType/text()" | xmllint --nocdata --shell /tmp/Det.xml | grep -v '/'
success
Ваш пример statusMSG == "$ (echo" cat / Envelope / Body / grtHgetRed / ResponseType / text () "| xmllint --nocdata --shell response.xml | sed '1d; $ d')"
не работает, потому что вы используете echo "cat ... / text ()"
внутри кавычек без кавычек и используете оператор == вместо присваивания.
xpath
в ENV Unix – The Dark Knight 24.09.2013, 16:41