#!/usr/bin/env bash input="$1" # Remove all characters except brackets, braces, and parentheses cleaned_input=$(echo "$input" | tr -cd '[]{}()') # Keep replacing any valid pair of brackets, braces, or parentheses with an empty string while [[ $cleaned_input =~ (\(\)|\{\}|\[\]) ]]; do cleaned_input=${cleaned_input//\(\)/} cleaned_input=${cleaned_input//\{\}/} cleaned_input=${cleaned_input//\[\]/} done # If the cleaned string is empty, all pairs are matched and nested correctly if [[ -z $cleaned_input ]]; then echo "true" else echo "false" fi