web-dev-qa-db-fra.com

Pourquoi le '!!' le raccourci n'a pas réussi à exécuter la commande précédente?

Récemment, j'ai tapé à mon terminal

username:~$ !!

et a eu une erreur de bash:

bash: !!: command not found

Dans le même temps, il réussit lorsque cela est fait sous superutilisateur.

J'ai examiné le contenu de PATH de mon utilisateur et rien trouvé de suspect:

/home/username/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Voici la sortie 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

Un autre:

username:~$ echo foo
foo
username:~$ !!
bash: !!: command not found
14
Bulat M.

L'expansion de l'historique peut être désactivée:

$ echo foo
foo
$ !!
echo foo
foo
$ set +o histexpand
$ set -o | grep hist
histexpand      off
history         on
$ echo foo
foo
$ !!
bash: !!: command not found

Essayez set -H ou set -o histexpand.

23
muru