Neden '!!' kısayol önceki çalıştırma komutunu yürütemiyor?


14

Son zamanlarda terminalime yazdım

username:~$ !!

ve bash hatası var :

bash: !!: command not found

Aynı zamanda, süper kullanıcı altında yapıldığında başarılı olur.

Kullanıcının PATH'sinin içeriğini araştırdım ve şüpheli bir şey bulamadım:

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

İşte çıktı:

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

Bir diğeri:

username:~$ echo foo
foo
username:~$ !!
bash: !!: command not found

2
Her zaman olur mu? Ya kaçarsan echo foosonra !!? Ayrıca, lütfen sorunuzu düzenleyin ve çıktısını ekleyin history | tail. Kabuk oturumunuzun geçmişi var mı?
terdon

1
Giriş diliniz nedir? Standart ingilizce veya başka bir klavye mi kullanıyorsunuz?
Sergiy Kolodyazhnyy

5
histexpandKabuk seçeneklerinizde ayarlı mı ? çıktı echo $-nedir?
steeldriver

2
@muru, ... düzenli olarak eski bir freenode #bash olarak konuşurken, diğer kanal büyüklerinden herhangi bir geri dönüş almadan, insanların devre dışı bırakmalarını tavsiye etmek için çok zaman harcıyordum - insanlar tam anlamıyla !onurlandırılmayan komutlarla şaşırıyorlardı Ekstra alıntı, geçmiş genişletme işlevselliğinin readline aracılığıyla kullanımı kolay biçimde bulunmasını istemeyen birini bulmaktan çok daha yaygın bir olaydı.
Charles Duffy

1
@muru, internette bulduğum birçok örnek dosyadan birinden körü körüne .bashrc içeriği kopyalarken yapılandırma dosyamın ortasında devre dışı bıraktım.
Bulat M.

Yanıtlar:


23

Geçmiş genişletmesi devre dışı bırakılmış olabilir:

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

Deneyin set -Hveya set -o histexpand.


@Serg set -oveya özel değişken$-
muru

Tamam, anlıyorum, işte bunu yapıyorsunset -o | grep hist
Sergiy Kolodyazhnyy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.