web-dev-qa-db-ja.com

なぜ「!!」ショートカットは前に実行したコマンドを実行できませんか?

最近、端末で入力しました

username:~$ !!

bashからエラーが発生しました:

bash: !!: command not found

同時に、スーパーユーザーで実行すると成功します。

ユーザーのPATHのコンテンツを調査したところ、疑わしいものは見つかりませんでした。

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

出力は次のとおりです。

username:~$ history | tail
1993  date
1994  cal
1995  vcal
1996  uptime
1997  uname
1998  uptime
1999  uname
2000  uptime
2001  uname
2002  history | tail

別の:

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

履歴の展開が無効になっている可能性があります。

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

set -Hまたはset -o histexpandを試してください。

23
muru