Повторно запустіть кілька команд історії


22

Уявіть, що ви просто виконали десяток команд. Сказати...

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

Я знаю, що можу повторно запустити їх об'єднаними, !-12 && !-11 && !-10 && (and so on) && !!якщо вони трапляються щойно запущеними (навряд чи) !10000 && !10001 && !10002 && (and so on), але чи є більш простий спосіб, ніж ввести вручну кожен номер історії за допомогою удару та розширення?

Можливо, є якась дальність, про яку я не знаю в баші?

наприклад !{10000-10012}# щось подібне, тільки працює.

Відповіді:


23

Це те, для чого призначена fcкоманда.

fc -12 -1

або

fc 10000 10012

Це не зовсім те, що ви хочете, оскільки він спочатку запустить редактор, але це, мабуть, гарна річ, оскільки він дає вам можливість перевірити, чи є у вас правильні команди, і навіть редагувати їх, використовуючи всі можливості вашого улюбленого редактора. Після збереження змін та виходу з редактора команди виконуються.


А-а-а! Блискуче! fc. Виправити команди. Має сенс!
inanutshellus

1
Щоб уникнути запуску редактора (небезпечно!), Ви можете скористатисьfc -e true -12 -1
BingsF

недоступний в ubuntu
okwap

1
@okwap, нісенітниця. Це визначено POSIX і, безумовно, доступне в Ubuntu. (Хоча це вбудована оболонка - як і має бути - тому, якщо ви шукаєте, /binви її не знайдете.)
Wildcard
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.