function::assert - Linux


Overview

function::assert is a powerful utility that performs assertion checking in Linux shell scripts. It validates conditions and responds accordingly, providing a flexible and reliable way to ensure the integrity of your scripts.

Syntax

function::assert [options] <condition> <success-message> <failure-message>

Required Arguments:

  • <condition>: Expression to be evaluated.
  • <success-message>: Message to be printed if the condition evaluates to true.
  • <failure-message>: Message to be printed if the condition evaluates to false.

Options/Flags

  • -h, --help: Displays help information.
  • -v, --verbose: Prints additional information about the assertion outcome.
  • -f, --force: Continues execution even if assertions fail.
  • -r, --reverse: Reverses the success and failure messages.
  • -s, --silent: Suppresses all assertion outputs.

Examples

Simple Assertion:

function::assert [ "$a" -eq 5 ] "Variable 'a' is equal to 5" "Variable 'a' is not equal to 5"

Complex Assertion with Multiple Conditions:

function::assert [ "$user" != "root" ] && [ "$directory" == "/etc" ] "You are not the root user and accessing /etc" "Either you are the root user or you are not accessing /etc"

Using Force Flag:

function::assert -f [ "$command" -eq 0 ] "Command executed successfully" "Command execution failed"

Common Issues

Invalid Condition:

If the specified condition is invalid or contains syntax errors, the assertion will fail. Ensure the condition is syntactically correct and evaluates to a boolean value.

Missing Required Arguments:

All three required arguments must be provided. If any argument is missing, the assertion will return an error.

Integration

Error Handling:

  • Integrate with set -e to fail the script if any assertion fails (excluding those with the -f flag).
  • Use function::assert to validate user input, prevent invalid configurations, and gracefully handle unexpected situations.

Script Optimization:

  • Combine multiple assertions with logical operators like && and || to evaluate multiple conditions efficiently.
  • Utilize the -f flag to continue execution despite failed assertions, allowing the script to perform cleanup tasks or log errors before terminating.

Related Commands

  • test: Performs simple condition testing.
  • expr: Evaluates more complex expressions.
  • assert-command: A specialized utility for testing command execution outcomes.