On Sat, Nov 6, 2021, at 2:41 AM, Alex fxmbsw7 Ratchev wrote: > cat function/command_not_found_handle > m "$BASH_COMMAND" > > type m > m is aliased to `vim' > > type command_not_found_handle > command_not_found_handle is a function > command_not_found_handle () > { > vim "$BASH_COMMAND" > }
lmao so you're going to go ahead and do this anyway, incredible > foo > # vim opens, with the bash cmd as arg ( threated as filename ) > > "vim "$BASH_COMMAND"" [New] 0,0-1 > All Do you expect BASH_COMMAND to have the value of the original command? It only works that way within traps. `command_not_found_handle` isn't a trap. bash-5.1$ command_not_found_handle() { declare -p BASH_COMMAND; } bash-5.1$ foo declare -- BASH_COMMAND="declare -p BASH_COMMAND" This is the same behavior you'd see outside of `command_not_found_handle`. bash-5.1$ declare -p BASH_COMMAND declare -- BASH_COMMAND="declare -p BASH_COMMAND" Maybe try using the positional parameters instead. bash-5.1$ command_not_found_handle() { printf '<%s>\n' "$@"; } bash-5.1$ foo a b c <foo> <a> <b> <c> -- vq