Eu estava brincando com diferentes curingas e executei o seguinte comando:
ls testdir/!(*/)
após o qual eu não consegui voltar ao prompt bash. Nenhum de ^ C, ^ D ou mesmo de ^ Z funcionou: eles apenas imprimiram esses caracteres literais.
Atualização: descobri que basta digitar:
ls !()
teve o mesmo efeito. Remover minha .bash_history não ajudou.
Então, duas perguntas:
-
É possível recuperar-se desse comando?
-
O que exatamente eu disse para fazer e o que está esperando?
Notas:
Se eu apenas executar !(*/)
, apenas diz "evento não encontrado"
Se eu executar ls !(*/)
ou echo !(*/)
, ele faz o mesmo que acima
Os processos bash estão na lista com 100% da CPU, mas não ls
A execução do mesmo comando em um contêiner lxc apenas fornece "evento não encontrado". As opções do meu bash são bastante semelhantes ao Ubuntu 14.04. Nada estranho.
Usando set -x
antes do comando ls
não fazer eco em nada.
Notas2:
Saída do shopt
autocd off
cdable_vars off
cdspell off
checkhash off
checkjobs off
checkwinsize on
cmdhist on
compat31 off
compat32 off
compat40 off
compat41 off
compat42 off
complete_fullquote on
direxpand off
dirspell off
dotglob off
execfail off
expand_aliases on
extdebug off
extglob on
extquote on
failglob off
force_fignore on
globstar off
globasciiranges off
gnu_errfmt off
histappend on
histreedit off
histverify off
hostcomplete off
huponexit off
interactive_comments on
lastpipe off
lithist off
login_shell off
mailwarn off
no_empty_cmd_completion off
nocaseglob off
nocasematch off
nullglob off
progcomp on
promptvars on
restricted_shell off
shift_verbose off
sourcepath on
xpg_echo off
Saída do conjunto + o
set +o allexport
set -o braceexpand
set -o emacs
set +o errexit
set +o errtrace
set +o functrace
set -o hashall
set -o histexpand
set -o history
set +o ignoreeof
set -o interactive-comments
set +o keyword
set -o monitor
set +o noclobber
set +o noexec
set +o noglob
set +o nolog
set +o notify
set +o nounset
set +o onecmd
set +o physical
set +o pipefail
set +o posix
set +o privileged
set +o verbose
set +o vi
set +o xtrace