Tein virheen kirjoittaessani SQLite-komentokehotteeseen komennon, jonka haluan nyt keskeyttää, näin komentorivini näyttää

sqlite> select * from todos" ...> " ...> ;^C 

Tässä tapauksessa, todennäköisesti koska olen avannut tarjouksen, en voi edes lyödä komentoa ENTER. Hanki vain rivin jatko, se olisi silti vähemmän kuin ihanteellinen, koska minun täytyisi suorittaa virheellinen koodi ja syy ja virhe vain palauttaaksesi kehotteen hallinnan.
Kuinka voin peruuttaa rivin / komennon ja palata takaisin kehotteeseen?

Kommentit

  • Ehkä ^ D sulkee kohteen sqlite stdin ja sulkee sen …
  • @Ralph ctrl D saa sqlite-ohjelman poistumaan koko istunnosta, mukaan lukien kaikki muistitietokannoista menettävät tiedostot – jos epäonnistut suorittavan mitään.

Vastaa

sqlite3 -rajapinta käyttää ReadLine-kirjastoa komentorivin muokkaamiseen. Voit poistaa koko rivin h Ctrl + U mutta kun olet painanut Enter , rivi on hyväksytty eikä sitä voi enää muokata.

Kun olet ”ve huomasi , kun lähetät Ctrl + D , asiakas pyytää poistumaan, mitä et halua.

Paras veto on

  1. sulkea mikä tahansa merkkijono ja luoda sitten tarkoituksellinen syntaksivirhe
  2. ennen lopullisen ; julkaisemista.

Esimerkissäsi:

sqlite> select * from todos" ...> " ...> *** I made a mistake ...> ; Error: near "*": syntax error sqlite> 

Tämä varmistaa, että mitään ei suoriteta, ja se jättää sinut SQLite-istuntoon väliaikaisten taulukoiden ollessa ehjät.

Kommentit

  • kiitos, kyllä luulin, että tämä voisi olla paras ratkaisu
  • Jos olet painanut kirjoita nuolinäppäimen jälkeen, ts. sinulla on jotain > ^[[A ja sitten ...>, sitten sinun on suljettava suluet peruuttaaksesi sen: > ]];. Sen pitäisi todella tukea Ctrl + C tätä. ' on tuskallista tällä tavalla.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *