Czy istnieje sposób na zapisanie polecenia w historii basha bez jego wykonania? na przykład
$ cmd [a long list of arguments]
a teraz podczas pisania pamiętam, że najpierw chciałbym zrobić coś innego. Czy mogę prosić o coś takiego?
$ cmd [a long list of arguments][some-key-strokes]
i to tak naprawdę się nie uruchamia, ale przechodzi do historii basha, aby móc go później użyć?
#
, a następnie naciśnij Enter.Odpowiedzi:
Może być lepszy sposób, ale możesz użyć
:p
modyfikatora rozszerzenia historii, aby wydrukować bieżący wiersz komentarza bez wykonywania.!#
jest bieżącą linią i%
sam w sobie nic nie pasujeźródło
ls -al
+1Użyj
-s
opcji dohistory
polecenia:Wywołanie do
history -s
siebie, dogodnie, nie jest dodawane do historii poleceń, więc w twojej historii wygląda to tak, jakbyś wykonał tocmd
bez robienia tego.źródło
Zwykle odbywa się to przez
Pamiętaj, że nazwa historii może różnić się w twoim systemie. Dlatego możesz korzystać ze
HISTFILE
środowiska varco sprawia, że:
źródło
Zwykle po prostu dodaję # na początku wiersza, aby przekształcić wiersz w komentarz:
Wolę to, ponieważ możesz to zrobić za pomocą 3 [4, jeśli potrzebujesz SHIFT, aby wstawić #] naciśnięcia klawiszy
^ a przechodzi na początek bieżącej linii
# dodaje komentarz
ENTER wykonuje komentarz
źródło
... lub użyj kombinacji klawiszy:
ESC #
Zobacz także: Bash - zapisz polecenie bez jego wykonania
źródło
Możesz spróbować dodać spację i | (potok) na końcu linii, naciśnij Enter, a następnie Ctrl-C'ing.
( Space, |, Enter, Ctrl+ C)
Polecenie będzie w twojej historii z | na końcu (można po prostu usunąć za pomocą backspace) zamiast # na początku (potencjalnie bardziej nużące do usunięcia).
ZASTRZEŻENIE: Nie wiem, czy to zawsze działa! Używaj na własne ryzyko!
źródło
Możesz spróbować użyć tej linii:
history -s -p $COMMAND
Od
help
:Oznacza to, że możesz rozwijać takie rzeczy, jak
!!
i przechowywać wynik na dole historii.źródło
history -s
udzielono w odpowiedzi dwa lata temu. Czy to-p
poprawia? Co ma-p
zrobić? (W zakresie, w jakim ma to sens, należy edytować odpowiedź, aby była lepsza, i nie odpowiadać na mój komentarz innym komentarzem.)Inną opcją jest przejście do początku linii i zrobienie tego, co miałeś zrobić, a następnie &&, na przykład
Więc jeśli to, co chciałeś zrobić, powiedzie się, twoje polecenie uruchomi się natychmiast, a jeśli się nie powiedzie, polecenie nie uruchomi się, ale będzie w historii. Ty też możesz to zrobić
Ponieważ test bez argumentów zakończy się niepowodzeniem, ale jest to garść dodatkowych naciśnięć klawiszy w porównaniu do
#
metody.źródło
Myślę, że „niektórymi naciśnięciami klawiszy”, które chcesz, są Ctrl-U i Ctr-Y, które przechowują linię w pierścieniu zabijania, a następnie wyciągają ją z powrotem później. To nie wchodzi do historii, ale myślę, że nie powinno, bo tego nie zrobiłeś.
Readline Polecenia zabijania
Zabijanie i szarpanie
Nauczyłem się tego lata temu, potem zapomniałem i szukałem też tych kluczowych uderzeń.
Omówiono tu także: /unix/140741/how-to-save-a-command-you-entered-without-executing-it
źródło