#!/bin/bash #set -euo pipefail # Use 'declare -p' to list all aliases in a more parseable format # alias_output=$(declare -p alias | sed 's/^alias \([^=]\+\)='\''\([^'\'']*\)'\''$/\1='\''\2/' | sed "s/'/'\''/g") list_aliases() { shopt -s expand_aliases alias } # Print header for the table printf "%-20s\t%s\n" "Alias" "Command" printf "%-20s\t%s\n" "-----" "-------" # Iterate over each alias and extract its name and definition list_aliases | while IFS='=' read -r alias_name alias_command; do # Extract alias name and definition #alias_name=$(echo "$line" | cut -d '=' -f 1) #alias_command=$(echo "$line" | cut -d '=' -f 2- | sed "s/'//g") alias_command="$(echo -e "${alias_command}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')" # Print alias name and corresponding command in tabular format printf "%-20s\t%s\n" "$alias_name" "$alias_command" done