-1
У меня есть сценарий оболочки Unix, в котором я даю два условия для ошибки и не ошибка, как показано ниже:Unix КШ: Возвращение только 1 за ошибки и 0 для успеха
Script: Test.sh
#!/bin/sh
error1=ERROR
error2=FAIL
CheckError1=`grep $error1 proshell.sh | wc -l`
CheckErro2=`grep $error2 proshell.sh | wc -l`
if [ $CheckError1 -ge 1 ] then
exit 1
elif [ $CheckError2 -ge 1 ] then
exit 1
else
exit 0
fi
Примечание: проблема заключается в том, что я не получаю всегда 1 для любых ошибок для выхода 1.
Как получить только 1 за любые ошибки?
Пожалуйста, покажите реальный код; то, что вы показали, не является синтаксически правильным. У вас также есть опечатка: 'CheckErro2 =' vs' $ CheckError2 -ge'. Что вы получаете вместо 1? Вы получаете 0? Или '' 'жалуется на неправильное состояние? Но код не работает, поэтому ... спекуляция бесполезна. См. Также [Как отлаживать сценарий оболочки] (https://stackoverflow.com/questions/951336/), который ссылается на Bash, но то же самое работает на оболочку Korn (и оболочку Bourne). –
Также вы говорите о 'ksh', но ваша строка shebang указывает'/bin/sh', что наиболее вероятно _not_ 'ksh'. – mklement0
Объедините оба теста с 'grep -E '$ {error1} | $ {error2}" ' –