Am făcut o greșeală scriind o comandă la promptul de comandă SQLite, pe care acum vreau să o anulez, așa arată linia mea de comandă
sqlite> select * from todos" ...> " ...> ;^C
În acest caz, probabil pentru că am deschis o ofertă, nu pot nici măcar să lovesc ENTER
pentru a rula comanda. I obține doar o continuare a liniei, care ar fi totuși mai puțin decât ideală, deoarece ar trebui să rulez un cod greșit și o cauză și o eroare, doar pentru a recâștiga controlul promptului.
Cum pot anula linia / comanda și a fi returnat înapoi la o solicitare?
Comentarii
Răspuns
Interfața sqlite3
folosește biblioteca ReadLine pentru editarea liniei de comandă. Puteți șterge o linie completă h Ctrl + U , dar după ce ați apăsat Enter , linia a fost acceptată și nu mai poate fi modificată.
După cum ați = „ad4edeaba9″>
observat , trimiterea Ctrl + D va solicita clientului să iasă, ceea ce nu este ceea ce doriți.
Cel mai bun pariu este să
- să închidă orice șir și apoi,
- înainte de a emite un
;
final, să genereze o eroare de sintaxă deliberată.
În exemplul dvs.:
sqlite> select * from todos" ...> " ...> *** I made a mistake ...> ; Error: near "*": syntax error sqlite>
Acest lucru vă va asigura că nu se execută nimic și vă va lăsa în sesiunea SQLite cu orice tabel temporar intact.
Comentarii
- mulțumesc, da, m-am gândit că ar putea fi cea mai bună soluție
- Dacă ați apăsat introduceți după o tastă săgeată, adică aveți ceva de genul
> ^[[A
și apoi...>
, atunci trebuie să închideți parantezele pentru a anula:> ]];
. Ar trebui să sprijine într-adevăr Ctrl + C pentru acest lucru. ' este urât în acest fel.
sqlite
și îl va face să iasă …