Jeg gjorde en feil med å skrive en kommando ved SQLite-ledeteksten, som jeg nå vil avbryte, slik ser kommandolinjen ut
sqlite> select * from todos" ...> " ...> ;^C
I dette tilfellet, sannsynligvis fordi jeg har åpnet et tilbud, kan jeg ikke engang treffe ENTER
for å kjøre kommandoen. bare få en linjefortsetting, det vil fremdeles være mindre enn ideelt fordi jeg må kjøre dårlig kode og årsak og feil, bare for å få tilbake kontrollen over meldingen.
Hvordan kan jeg avbryte linjen / kommandoen og komme tilbake til en melding?
Kommentarer
Svar
sqlite3
grensesnittet bruker ReadLine-biblioteket for redigering av kommandolinjen. Du kan slette en full linje med h Ctrl + U men når du har trykket på Enter , er linjen akseptert og kan ikke lenger redigeres.
Da du har lagt merke til , ved å sende Ctrl + D blir kunden bedt om å avslutte, og det er ikke det du vil.
Det beste alternativet er å
- lukke en hvilken som helst streng, og deretter,
- før du utsteder en endelig
;
, genererer en bevisst syntaksfeil.
I eksempelet ditt:
sqlite> select * from todos" ...> " ...> *** I made a mistake ...> ; Error: near "*": syntax error sqlite>
Dette vil sikre at ingenting blir utført, og det vil forlate deg i SQLite-økten med eventuelle midlertidige tabeller intakte.
Kommentarer
- takk, ja jeg trodde det kan være den beste løsningen
- Hvis du har trykket skriv inn etter en piltast, dvs. at du har noe sånt som
> ^[[A
og deretter...>
, så må du lukke parentesene for å avbryte det:> ]];
. Det burde virkelig støtte Ctrl + C for dette. Det ' er motbydelig på denne måten.
sqlite
og får den til å avslutte …