#!/usr/bin/env bash
# diffc - diff commands
# - allows to call as: diffc 'command one' 'command two'
# instead of: diff <(command one) <(command two)
# (Just to save typing a few characters. Lol I'm a lazy programmer)
function diffc () {
if [[ "$#" != "2" ]]; then
echo "diffc requires two arguments"
return 1
fi
local command=$(printf 'diff <( %s ) <( %s )' "$1" "$2")
echo $command
eval $command
}
# diffh - diff history
# - make a diff of the output of the last two commands in the shell history
function diffh () {
# first one is 2nd to last. second is last
# remove preceeding spaces
local first=$(fc -ln -2 -2)
local second=$(fc -ln -1 -1)
# print and run diff
local command=$(printf 'diff <( %s ) <( %s )' "${first}" "${second}")
echo $command
eval $command
local error_code=$?
# replace this 'diffh' entry in history with the command
history -s "$(echo $command)"
return $error_code
}
Looks very nice, thanks!