LINUX.ORG.RU

прога на bash


0

0

Привет всем! Вопрос такой: как перехватывать ошибки, генерируемые sh-ом и выдавать вместо них свои? Ну к примеру, нужно написать программулину, которая показывает одержимое какого-нить каталога. Если вдруг у вас нет доступа на чтение, нужно перехватить ошибку sh-а, пихнуть её в лог-файл, а на экран выдать своё сообщение. Всем спасибо!!!

(cd /root/ 2> error_log) || echo "FSCK"

phoenix ★★★★
()

#!/bin/sh
#
# Simulating exceptions in a Bourne shell
#



# our functions

do_action_1 ()
{
        echo "Action 1"
}

do_action_2()
{
        echo "Action 2"
}

do_action_3()
{
        echo "Action 3"
}

failure()
{
        return 1
}

# The (...) is our try block
(
        # This "set" statement is what turns the (...) block into
        # a real try block - the first commmand that exits with error
        # will cause the execution to jump straight to the end of the
        # (...) block.
        set -e
        do_action_1
        do_action_2
        failure
        do_action_3
)
# The try block has exited
# Very important to save the exception code in different
# variable, because $? may be overwritten.
E=$?

# Now, as we had exited the try block, we can analyze the status:
# if the $E variable is equal to 0, then all is good, otherwise - we
# have a problem.
case $E in
        0) echo "Success!!" ;;
        *) echo "Failure: $E" ;;
esac

omerm
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.