Itu bash
ekspansi sejarah, misalnya
!87
menjalankan kembali perintah dari baris sejarah 87
.
Anda menemukan deskripsi fitur ini di man bash
, bagian "SEJARAH EKSPANSI":
An event designator is a reference to a command line entry in the
history list. Unless the reference is absolute, events are relative to
the current position in the history list.
! Start a history substitution, except when followed by a blank,
newline, carriage return, = or ( (when the extglob shell option
is enabled using the shopt builtin).
!n Refer to command line n.
!-n Refer to the current command minus n.
Jadi untuk segera memanggil perintah terakhir, lakukan !-1
dan untuk perintah terakhir kelima !-5
. Sinonim yang berguna untuk !-1
adalah !!
- jika Anda memanggil mis apt install something
dan lupa sudo
, jalankan saja sudo !!
dan Anda baik-baik saja.
Hanya backslash ( \ ) dan tanda kutip tunggal yang dapat mengutip karakter ekspansi sejarah.
Untuk menghindari ekspansi riwayat, Anda harus keluar dari tanda seru dengan garis miring terbalik ( \!
) atau menggunakan tanda kutip tunggal ( '!'
).