On Sun, 29 Apr 2012, Benjamin R. Haskell wrote:
> I use autocd quite a bit. And often the first thing I want to do when
> starting a new project is to create a directory and cd into it. I tried
> creating the following command_not_found_handler:
>
Okay. Different tack, different problem:
preexec {
__last_command=$1
# ... etc.
}
trap '
local dir= create=
set -- ${=__last_command}
(( $# == 1 )) || return 1
[[ $1 == */* ]] || return 1
dir=$1
read -q "create?Create $dir [y/N]? " || return 1
mkdir -p $dir || return 1
cd $dir
' ZERR
Now $dir ends up containing '~/tmp/one-off-project', with the '~' unexpanded.
Seeing as how the directory doesn't yet exist, I can't just glob it. Is there
a function to do just named-directory expansion?