Uruchom ponownie wiele poleceń historii

22

Wyobraź sobie, że właśnie wykonałeś kilkanaście poleceń. Mówić...

$ cd foo/    # history cmd #10000 (my history is very long)
$ ... more commands ...
$ cd ../     # history cmd #10012 

Wiem, że mogę je ponownie uruchomić, !-12 && !-11 && !-10 && (and so on) && !!jeśli zostały właśnie uruchomione (mało prawdopodobne) lub !10000 && !10001 && !10002 && (and so on), ale czy istnieje prostszy sposób niż ręczne wpisywanie każdego numeru historii z hukiem i znakami ampersand?

Czy jest może jakiś rodzaj zasięgu, którego nie znam podczas bash?

np. !{10000-10012}# coś takiego, tylko działa.

inanutshellus
źródło

Odpowiedzi:

23

Do tego służy fcpolecenie.

fc -12 -1

lub

fc 10000 10012

Nie jest to dokładnie to, czego chcesz, ponieważ najpierw uruchomi edytor, ale jest to prawdopodobnie dobra rzecz, ponieważ daje szansę podwójnego sprawdzenia, czy masz poprawne polecenia, a nawet edycji ich przy użyciu wszystkich możliwości ulubionego edytora. Po zapisaniu zmian i zamknięciu edytora polecenia zostaną uruchomione.

jw013
źródło
Ach ha! Znakomity! fc. Napraw polecenia. Ma sens!
inanutshellus
1
Aby uniknąć uruchamiania edytora (niebezpieczne!), Możesz użyćfc -e true -12 -1
BingsF
niedostępne w ubuntu
okwap,
1
@okwap, nonsens. Jest określony w POSIX i na pewno dostępny w Ubuntu. (Jest to jednak wbudowana powłoka - jak to musi być - więc jeśli /bin
zaglądasz,