У меня вопрос по поводу простого сценария оболочки.
Это исходный код rand. sh ниже
#!/bin/bash
n=$(( RANDOM % 100 ))
if [[ n -eq 42 ]]; then
echo "Something went wrong"
>&2 echo "The error was using magic numbers"
exit 1
fi
echo "Everything went accrding to plan"
и я собираюсь чтобы создать новый сценарий оболочки, позвольте мне назвать его викторина. sh.
викторина. sh должно l oop до n == 42. если n == 42, сохраните stdout («Что-то пошло не так») и stderr («Ошибка при использовании чисел magi c»)
, и в конце концов он завершился печатью этих stdout, stderr и Total счетчик выполнения.
вот мой тест. sh
#!/bin/bash
cnt=0
while [[ "${n}" -ne 42 ]]
do
(( cnt = "${cnt}"+1 ))
source ./rand.sh &> error.txt
done
cat error.txt
echo "${cnt}"
, но это не работает. из-за exit 1
в rand. sh, программа завершается перед выполнением cat
и echo
, которые находятся в конце двух строк.
как я могу это исправить ?? пожалуйста, дайте мне знать!