Recentemente eu digitei no meu terminal
username:~$ !!
e obteve erro do bash :
bash: !!: command not found
Ao mesmo tempo, é bem-sucedido quando feito sob superusuário.
Investiguei o conteúdo do PATH do meu usuário e não encontrei nada suspeito:
/home/username/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Aqui está a saída de:
username:~$ history | tail
1993 date
1994 cal
1995 vcal
1996 uptime
1997 uname
1998 uptime
1999 uname
2000 uptime
2001 uname
2002 history | tail
Outro:
username:~$ echo foo
foo
username:~$ !!
bash: !!: command not found
command-line
bash
bash-history
Bulat M.
fonte
fonte
echo foo
e depois!!
? Além disso, edite sua pergunta e adicione a saída de maishistory | tail
ou menos. Sua sessão de shell tem algum histórico?histexpand
definido nas suas opções de shell? qual é a saídaecho $-
?!
literais que não são honrados sem a citação extra foi uma ocorrência muito mais comum do que encontrar alguém que desejasse que a funcionalidade de expansão do histórico não estivesse disponível no formato mais fácil de usar por meio da linha de leitura.Respostas:
A expansão do histórico pode estar desativada:
Tente
set -H
ouset -o histexpand
.fonte
set -o
, ou a variável especial$-
set -o | grep hist