Jag gjorde ett misstag när jag skrev ett kommando vid SQLite-kommandotolken, som jag nu vill avbryta, så ser min kommandorad ut
sqlite> select * from todos" ...> " ...> ;^C
I det här fallet, troligtvis för att jag har öppnat en offert, kan jag inte ens slå ENTER
för att köra kommandot. få bara en linjefortsättning, det skulle ändå vara mindre än idealt för att jag skulle behöva köra dålig kod och orsak och fel, bara för att återfå kontrollen av prompten.
Hur kan jag avbryta raden / kommandot och få tillbaka tillbaka till en uppmaning?
Kommentarer
Svar
sqlite3
gränssnittet använder ReadLine-biblioteket för kommandoradsredigering. Du kan radera en hel rad med h Ctrl + U men när du har tryckt på Enter har raden accepterats och kan inte längre redigeras.
När du har märkt , att skicka Ctrl + D kommer att uppmana klienten att avsluta, vilket inte är vad du vill.
Din bästa satsning är att
- stänga vilken sträng som helst och sedan
- innan ett sista
;
skapas ett avsiktligt syntaxfel.
I ditt exempel:
sqlite> select * from todos" ...> " ...> *** I made a mistake ...> ; Error: near "*": syntax error sqlite>
Detta kommer att säkerställa att ingenting körs och det kommer att lämna dig i SQLite-sessionen med alla tillfälliga tabeller intakta.
Kommentarer
- tack, ja jag trodde att det kan vara den bästa lösningen
- Om du har tryckt ange efter en piltangent, dvs du har något som
> ^[[A
och sedan...>
, sedan måste du stänga parenteserna för att avbryta det:> ]];
. Det borde verkligen stödja Ctrl + C för detta. Det ' är motbjudande på det här sättet.
sqlite
och gör att den avslutas …