No jo, tak ma to svoje mouchy - nejvetsi problem je, ze * je expandovan shellem, coz je fajn, ale chtelo by to aby to bylo context-senzitive - asi jako tab autocompletion. Proste chtelo by to univerzalni modul do bashe, aby vedel, u kterych prikazu ma expandovat *, a u kterych ne. Priklad:
scp server.cz:projekt/* .
pravidlo by se zapsalo treba ve forme
parse-command scp /*:*\*/\\\*/ ;-)
pro muj skript by stacilo
parse-command my /\*/\\\*/
a zlaty hreb vecera - patch pro DOSovske rename ;-)
parse-command ren /\*/\\\*/
(pouzil jsem jakousi svoji mutaci regexp - ja je normalne nepouzivam, ale vsak on by to uz nekdo opravil ;-)
Proste pro zacatek by bohate stacilo, kdyby se dalo
shellu rict, u kterych prikazu ma expandovat * a u kterych ne. Idealni je implementovat patch zaroven s patchem na autocomplete pomoci Tab. Takze zadny "pgbash" a podobne jednoucelove hacky, ale chce to pekne dalsi vyvoj bashe, aby fungoval i pro nas bezne usery-lamery, kteri se zivime poctivou praci klavesnici - ted je bash orientovan spis na aroganatni unixove administratory a hackery ;-)
Zřejmě proto by se vyhnul problemům se substitucema, autor realizoval program, jako patch do bashe. I když tvůj nápad není úplně mimo.
Pokud potřebuješ snadno přepínat mezi konzolí, sql monitorem a skoro čímkoliv jiným, podívej se na emacs. Jeho sql mod umožňuje připojit se skorem ke každé databázi. V sh modu zase bez problémů fungujes v shellu. A mezi nima se přepínáš klasicky ctrl c b, nebo ctrl c o, když máš buffery zrovna zobrazený.
pgbash je šikovnej nápad typu za málo peněz hodně muziky. Ale zas je to dvou megabajtovej cvalík (bez stripnutí). A rozhodně není dělanej na interaktivní práci (I když jsem si to původně myslel, když jsem narazil kdysi zmíňku o něm na freshmeatu). S psql se dělá mnohem líp. Kdyby si "někdo" dal tu práci a do psql doplnil třeba PL/pgSQL (něco ubral (např. triggery), něco přidal (např. spouštění externích aplikací a přesměrování výstupu, interaktivní výstup)), tak abych si nemusel databáze špinit administrátorskýma uloženýma procedurama (který klidně mohou být u mne na lokále), tak to by byla fajnovost. Ale není tu není, tak se musí "vzít s povděkem" to co je. Aspoň co se týče mne, mi pgbash dost zjednoduší administrativu databází, a to nejsem "profesionál", spravuju jen jedno RDBMS s desítkami studentských databází.
Doplňovat další univerzální funkce do bashe mi přijde sisifofský úkol. Už takhle je to mastodot. Chtělo by to spíš napsat lokální interpret SQL. Pro mySQL káře, nenarazil jsem na nic podobného, co by bylo pro mySQL (ale taky jsem se po tom nepídil). Rozhodně by neměl být problém vyrobit patch pro pgbash, který by PostgreSQL volání nahradil mySQL. I když na druhou stranu se dá čekat, že už něco takového existuje.
hmm, nevim, emacs me nikdy neoslovil, mozna je to jeho estetikou - v grafickem modu vzdycky naskocilo take male hnusne zelene okenko s odporne bezovymi fonty, ktere melo naprosto zmatene ovladani a neumelo to vubec nic z toho, co bych od textoveho editoru ocekaval ;-) tusim, ze to umi ledacos, ale jde to proste moc mimo me.
s univerzalni prikazovou radkou to myslim vazne - nikoliv jako rozsireni bash, ale pouzit jakysi "supershell", ktery by (rozhodne jednoznacne!) analyzoval, zda jde o URL, SQL prikaz nebo unixovy prikaz, pripadne o specialni prikaz (ve kterem nechci expandovat hvezdicky...). Pricemz tenhle "supershell" by mel mit vlastnosti zname z Nortona/Midnightu - tzn. hlavne interaktivni doplnovani prikazove radky vyberem ze seznamu souboru, SQL vysledku, apod.
Priklad: napsal bych v Midnightu na prikazovou radku misto unixoveho prikazu SQL prikaz, a kdyz by vysledkem byla jakakoliv tabulka, hodilo by mi to uz rovnou do interaktivniho SQL browseru, ve kterem by mi jakykoliv zasah zpetne sestavoval prikazovou radku... moment...! to je taky dost podstatny napad! stejne jako webove browsery ukazuji pod kurzorem URL, mely by filemanazery a SQL manazery behem "sestavovani" jakekoliv operace ukazovat patricne unixove nebo SQL prikazy, kterymi by slo provest totez. Uzivatel by tim padem operativne videl, jestli pro tu kterou operaci je pro nej vhodnejsi prikazova radka nebo interaktivni frontend, a navic by mohl kterykoliv prikaz kdykoliv okopirovat do sveho skriptu - stejne jako z weboveho browseru se dnes pres clipboard kopiruji URLka do novych HTML stranek...