![]() |
![]() |
Jak psát MySQL příkazy přímo z shelluxChaos 25. října 2002 [4373 znaků] [editováno 21. března 2011] [HowKnow]Zobrazení 21230 ← RSS 15 Facebook 2 Twitter 6 Google 159 Komentářů 4 Inspiroval jsem se patchem Pgbash, umožňujícím volat PostgresQL příkazy přímo z příkazové žádky, a napsal něco podobného pro #MySQL jako jednoduchý #bash skript. Má to ale jednu vadu... #programming #unix Ta dobrá následuje vzápětí - napsal jsem trochu podobný hack pro mysql, jako shellový skript, který si můžete buď stáhnout, nebo přečíst, protože má pár řádek:
Použití je jednoduché, a hodí se to zejména pro autory PHP skriptů, kteří věčně zapomínají názvy a strukturu svých tabulek v MySQL, jako já:
my login Až potud je situace jednoduchá, a podobá se použití např. cvs login, cvs checkout, cvs commit, apod. Horší situace nastane, pokud chcete napsat: my select * from user Musíte totiž napsat některou z variant:
my select \* from user Důvodem je skutečnost, že Bash expanduje * už na příkazové řádce, a dělá z ní seznam všech souborů v adresáři. To je sice příjemné, ale u některých příkazů nepohodlné. Podobný problém nastane třeba u scp, pokud byste chtěli napsat "scp server.cz:projekt/* ." - hvězdička se expanduje už pro lokální soubory. Dalším problémem je třeba rename ve stylu DOSu - DOS totiž hvězdičku nexpandoval, takže šlo napsat třeba "ren *.txt *.old" Řešením by podle mě byla podmíněná expanze speciálních znaků pro některé příkazy - resp. pre-parsování příkazové řádky, které by šlo někde v shellu nakonfigurovat (jestli to jde, prozraďte kde ... a tak mi napadá... ono by to šlo velice jednoduše implementovat jako wrapper pro bash... ;-)
parse-command scp /*:*\*/\\\*/ Použil jsem jakousi svoji variantu regulárních výrazů - nevím, jestli je hvězdička korektní wildcard pro sed, netestoval jsem to. Myslím si, že by bylo vhodné implementovat to ne jako patch pro každý příkaz zvlášť, ale obecně - podobně, jako existuje třeba patch pro definici Tab autocomplete pro každý příkaz jinak... existuje ale i možnost, napsat jakýsi wrapper pro bash (v ideálním případě opět shellový skript :-), a jednoduše prohnat příkazovou řádku sedem... ještě jsem s tím nelaboroval, ale mělo by to být triviální, takže směle do toho ;-) Sloupcová sazba: pokud je okno prohlížeče dostatečně velké (na monitoru s dostatečným rozlišením), zobrazí se článek ve více sloupcích (w3.org). Testováno v browserech Firefox, Opera a Chrome. Není implementováno v Internet Exploreru. Tato feature může způsobovat problémy ve starších verzích prohlížečů s jádrem Webkit (Google Chrome, Safari, Konqueror). Pokud nevidíte článek celý, zkuste zmenšit okno prohlížeče nebo použít verzi pro tisk. [zpět na začátek sloupcové sazby] Pokud se vám článek líbil, zkuste autora podpořit [zobrazit možnosti] → Sdílet v síti [Identi.ca - musíte být předem přihlášeni] [Twitter] [Facebook] [Jagg.cz] Formátovat pro tisk [bez komentářů] [s komentáři] Krátká forma URL (adresy) [http://teckacz.cz/93] Všechny články [od autora xChaos] [v rubrice HowKnow] [nejnovější] Hodnocení článku čtenáři Tip: Pro moderaci ÄlĂĄnkĹŻ (kladnĂŠ nebo zĂĄpornĂŠ hodnocenĂ) je nutnĂŠ pouĹžĂt browser, kterĂ˝ podporuje javascript a cookies. Komentáře čtenářů [napsat vlastní]
Počet zobrazených komentářů: 4 [celkový čas potřebný k prohledání databáze a vytvoření stránky: 0.37 sekund] Nápověda: ve vlastním zájmu uvádějte u komentářů pouze funkční a dostupnou e-mailovou adresu.
Přezdívku, která je jednou spojená s konkrétní e-mailovou adresou, už nyní nelze bez zásahu
administrátora serveru spojit s jinou adresou. Uvedením neplatné e-mailové adresy si v budoucnu
znemožníte upload ikonky i možnost použít některé další chystané neanonymní funkce vázané na
uvedení platné e-mailové adresy. TečkaCZ [Nejnovější články] [Nejnovější komentáře] [Zeď vzkazů] [Zeď odkazů] [Začátek článku] |
![]() |
| |||||||
![]() |
|||||||||||
| |||||||||||