Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Jan Papež 14. 05. 2010, 13:55:26
-
Existuje neco srovnatelneho s PowerShellem pro Linux?
Mame na vyber z mnoha shellu, ale co me ted zaujalo na PowerShellu je, ze vystup prikazu (cmdletu) je objektovy. Tzn. nemusim si je parsovat, naopak je muzu primo ruzne formatovat (<command> | Format-Table NEBO <command> | Format-List...), serazovat (<command> | Sort-Object <object>)... Umi tohle nektery ze shellu, pripadne skriptovacich jazyku?
-
Co třeba projekt Pash (http://igorshare.wordpress.com/2008/04/06/pash-cross-platform-powershell-is-out-in-the-wild-announcement/)? Našel jsem ho zadáním "PowerShell Linux" do Google.
-
Python
-
Já myslím, že tohle ve skutečnosti zvládne kterýkoliv "skriptovací" jazyk, dokonce by to šlo řešit i třeba v Haskellu nebo Scale. Sten zmínil Python a já bych doporučoval ipython. Ten lze přímo používat jako interaktivní shell, ale já osobně, když něco v bashi nelze udělat snadno v řádce, píšu skript. S PowerShellem zkušenost nemám, ale přijde mi, že na podobné věci se skoro lépe hodí funkcionální přístup a ne "objektový".
-
no v podstate me nejde o vychvalovani PowerShellu, ale potvrzeni domnenek, ze tento produkt neprisel az tak s nicim novym.
Co se tyka objektoveho vystupu, urcite Vam neprijde dobre, kdyz se nemusite starat o parsovani a na misto toho pracovat primo s realnymi objekty?
-
>> Co se tyka objektoveho vystupu, urcite Vam neprijde dobre, kdyz se nemusite starat o parsovani a na misto toho pracovat primo s realnymi objekty?
Ne, protože parsování textu je rychlejší (pokud se dobře umí), je jednoduché a dobře se mi v řádce ladí. Nějak jsem postupně zjistil, že objektové paradigma není všelék na každý problém. :D
P.S. Pouze můj názor.
-
No tak jasně, že to může být výhodnější nebo čitelnější. Ale v Pythonu (například) napíšu sys.stdin.readlines() a mám ze standardního vstupu seznam řádek. A když se podívám na (syntakticky ošklivý) příklad z webu:
$sw = new-object system.IO.StreamWriter("c:\temp\ss2.txt")
$sw.writeline($db)
$sw.close()
get-content "c:\temp\ss.txt"
V Pythonu napíšu podle mě daleko elegantněji:
with open("ss2.txt", "a") as f:
print >> f, "Ahoj svete"
print open("ss2.txt").read()
Jasně, Python není určený pro přímou práci, ale to obludárium, co Microsoft zase stvořil, bych pro psaní skriptů věru používat nechtěl.
-
Pro přímou práci v příkazové řádce. Prostě to není DSL, ale GPL. ;)
-
MS vzdy musi znovuvynalezat kolo:/
Na vetsinu veci staci obycejny (pripadne vylepseny shell) a pokud je potreba neco hodne specifickeho, tak je lepsi pouzit programovaci jazyk.
Kdyby MS jen vylepsil CommandShell a umoznil na Windows pouzivat GNU tooly, tak by udelal lip. (tusim ze nejaka takova moznost existuje jako placena sluzba :( )
Jinak diky bohu za Cygwin;)