unset -f edit
function edit() {
declare -a ar
declare -i i=-1
while read -e -d $'\n' line; do let i++; ar[$i]="${line}"$'\n'; done # -e enables readline
printf "%s\n" "${ar[@]}" >> ~/.bash_history
#printf "%s\n" "${ar[@]}" | /usr/bin/tr '\n' ' ' >> ~/.bash_history
#printf "%s\n" >> ~/.bash_history
history -n
eval "${ar[@]}"
return 0
}
edit
echo "!";
[ctrl-r]
...
[ctrl-d]
edit
if [[ 5 -gt 3 ]]; then
echo 12345
fi
[ctrl-d]
[ctrl-d] # quit and execute the command
[ctrl-c] # do not execute the command and abort