Я использовал stackoverflow в течение некоторого времени, но только сейчас зарегистрирован, чтобы задать вопрос.Переменные сценария Bash и xmllint - проверка на несколько xsd xml-файлов - используйте вывод для if
У меня есть несколько файлов xsd и xml-файлов, которые мне нужно проверить. Проверка отлично работает, когда я запускаю xmllint команду на отдельном файле:
xmllint --noout --schema Activity_date_1.xsd Activity_date_1.xml
У меня есть несколько файлов, которые начинаются с таким же именем, но имеют разные даты в них (например, Activity_19_09_2015.xml). Как я могу получить скрипт, который проверяет все файлы и если какой-либо из них терпит неудачу, отображает сообщение об ошибке отдельно.
Я сделал это, но он не совсем делает то, что я хочу, если только это один файл.
xmllint --noout --schema Activity_*.xsd Activity_*.xml >/dev/null 2>&1
xmllint --noout --schema Earning_*.xsd Earning_*.xml >/dev/null 2>&1
xmllint --noout --schema Rules_*.xsd Rules_*.xml >/dev/null 2>&1
OP=$?
if [ $OP -eq 0 ]
then
echo -e "\e[0;32;40mPassed Validation \e[0m"
else
echo -e "\e[0;31;40mFailed Validation \e[0m"
fi
Я бы очень признателен за любую помощь.
У вас действительно есть xsd-файлы для каждого xml-файла? Вы не хотите проверять все xmls на тот же файл xsd? –
не могли бы вы разместить «ls» в каталоге с файлами? –
Да, есть действительно отдельные файлы xsd для каждого xml-файла. Я не разработчик, поэтому я не уверен, почему или нет, но разработчики делают проверку вручную один за другим, поэтому я создаю скрипт, поэтому он проверяет весь файл один за другим. – spiceitup