Hibát követtem el, amikor egy parancsot írtam az SQLite parancssorba, amelyet most meg akarok szakítani, így néz ki a parancssorom
sqlite> select * from todos" ...> " ...> ;^C
Ebben az esetben valószínűleg azért, mert kinyitottam egy ajánlatot, még a ENTER
-t sem tudom elfuttatni a parancs futtatásához. csak kapjon egy sort, ez még mindig kevesebb, mint az ideális, mert hibás kódot és okokat és hibákat kellene futtatnom, csak hogy visszanyerjem a parancs ellenőrzését.
Hogyan törölhetem a sort / parancsot és visszaküldhetem egy prompthoz?
Megjegyzések
Válasz
A sqlite3
kezelőfelület a ReadLine könyvtárat használja a parancssori szerkesztéshez. Törölhet egy teljes sort h Ctrl + U , de miután megnyomta az Enter gombot, a sor elfogadásra került és már nem szerkeszthető.
Ahogy “ve észrevette , a Ctrl + D küldésével a kliens kilépésre ösztönöz, amit nem szeretnél.
A legjobb fogadás az, hogy
- zárjon be minden karaktersorozatot, majd
- mielőtt kiadna egy végső
;
, szándékos szintaktikai hibát generál. / li>
A példádban:
sqlite> select * from todos" ...> " ...> *** I made a mistake ...> ; Error: near "*": syntax error sqlite>
Ez biztosítja, hogy semmi sem kerüljön végrehajtásra, és az SQLite munkamenetben marad bármilyen ideiglenes tábla sértetlen.
Megjegyzések
- köszönöm, igen, azt gondoltam, hogy ez lehet a legjobb megoldás
- Ha megnyomta egy nyíl gomb után írja be, azaz van valami, például
> ^[[A
, majd...>
, majd a zárójelek bezárásával törölheti ezt:> ]];
. Ehhez valóban támogatnia kell a Ctrl + C billentyűkombinációt. ' így kellemetlen.
sqlite
stdin-t és kilép …