Popełniłem błąd, pisząc polecenie w wierszu poleceń SQLite, które teraz chcę przerwać, tak wygląda moja linia poleceń
sqlite> select * from todos" ...> " ...> ;^C
W tym przypadku, prawdopodobnie dlatego, że otworzyłem ofertę, nie mogę nawet nacisnąć ENTER
, aby uruchomić polecenie. I po prostu uzyskaj kontynuację wiersza, co nadal byłoby mniej niż idealne, ponieważ musiałbym uruchomić zły kod i przyczynić się do błędu, aby odzyskać kontrolę nad monitem.
Jak mogę anulować wiersz / polecenie i wrócić do monitu?
Komentarze
Odpowiedz
Interfejs sqlite3
korzysta z biblioteki ReadLine do edycji wiersza poleceń. Możesz wymazać całą linię h Ctrl + U ale po naciśnięciu Enter linia została zaakceptowana i nie można jej już edytować.
Jak już zauważyłem , wysłanie Ctrl + D zachęci klienta do wyjścia, co nie jest tym, czego chcesz.
Najlepiej jest
- zamknąć dowolny ciąg, a następnie
- przed wydaniem końcowego
;
wygenerować celowy błąd składni.
W Twoim przykładzie:
sqlite> select * from todos" ...> " ...> *** I made a mistake ...> ; Error: near "*": syntax error sqlite>
Zapewni to, że nic nie zostanie wykonane i pozostawi Cię w sesji SQLite z nietkniętymi tabelami tymczasowymi.
Komentarze
- dziękuję, tak, pomyślałem, że to najlepsze rozwiązanie.
- Jeśli nacisnąłeś wprowadź po klawiszu strzałki, czyli masz coś takiego jak
> ^[[A
, a następnie...>
, a następnie musisz zamknąć nawiasy, aby anulować:> ]];
. Naprawdę powinien obsługiwać Ctrl + C do tego. W ten sposób ' jest nieprzyjemny.
sqlite
i zamknie je …