Функция, которая проверяет предыдущую команду

Я хочу написать функцию, чтобы проверить предыдущую команду. Успешно или нет.

Мой код:

#!/bin/bash

function check_previous {
        RESULT=$?
        if [ $RESULT -eq 0 ]; then
        echo "success"
        else
        echo "failed"
        fi
}

echo "wwe"
check_previous

ls - l
check_previous

Да, это работает. Нет проблем. Но у меня много команд, которые я должен проверить, один за другим. И у меня есть только два сообщения "успех" и "не удалось". Но если я хочу добавить несколько сообщений "каталог успешно удален" или "файл был изменен". как сделать это в одной функции для другой команды? для создания файла "файл был создан", для "удаления", "файл был удален". Любая идея?

1 ответ

Решение

Вам нужно передать строковый параметр в вашу функцию, чтобы описать предыдущее состояние команды и использовать этот параметр в echo,

#!/bin/bash

function check_previous {
        RESULT=$?
        if [ $RESULT -eq 0 ]; then
        echo "$1: success"
        else
        echo "$1: failed"
        fi
}

echo "wwe"
check_previous "echo"

ls - l
check_previous "ls"
Другие вопросы по тегам