Ehm...
% head -1 datamanager/deploy
#! /bin/bash
% wc -l datamanager/deploy
370 datamanager/deploy
Ja

Ik heb geen ervaring met ksh, maar wel heel veel met zsh. En basically heb je daarmee hetzelfde probleem. Er zijn wel zaken die het script-leven in zsh prettiger maken (zoals arrays), daarom schrijf ik soms zsh-scripts ipv bourne shell scripts, maar het blijft een shell, geen fatsoenlijke programmeertaal.
Ik zit eigenlijk een paar jaar te denken om naar zsh als default shell te gaan omdat het nogal uitgebreid is in mogelijkheden
Ik kan het alleen maar aanraden. Ik ken niemand die nog bash wil gebruiken na zsh geprobeerd te hebben.
Een aantal dingen die ik bijvoorbeeld heerlijk vind aan zsh:
Menu-tabcompletion. Heb je log-2014-12-20.txt, log-2015-01-20.txt, log-2015-02-05.txt, en log-2015-02-20.txt, en doe je log-<tab>, dan krijg je een menutje waarin je met de pijltjestoetsen de gewenste file kunt selecteren:
[log-2014-12-20.txt] log-2015-01-20.txt
log-2015-02-05.txt log-2015-02-20.txt
Heerlijk voor filenames die irritant zijn met normale tabcompletion.
Of in-word tabcompletion. Heb je foo.txt en foo-extra.txt, dan complete extra<tab> naar foo-extra.txt. Handig als veel files met hetzelfde beginnen maar je weet welke je moet hebben. In bovenstaand voorbeeld zou 2-2<tab> completen naar de meest recente logfile.
Of tabcompletion met typocorrectie. Ik vond zelf de echte typo-correctie irritant, dus die heb ik uitstaan, maar de hoofdlettercorrectie heb ik wel aan staan. Doe je foo<tab> maar heb je alleen een Foo.txt, dan complete hij die. Met echte typocorrectie zou hij fo.txt ook completen.
zsh's globbing is ook zo briljant. Voorbeeldjes:
% tree
.
|-- 1
| |-- 2
| | `-- foo
| `-- foo
|-- a -> b
|-- bar
|-- baz -> bar
`-- foo
% echo **/foo # Recursieve globbing
1/2/foo 1/foo foo
% echo * # Alles
1 a bar baz foo
% echo *~foo # Alles behalve foo
1 a bar baz
% echo *(.) # Alleen normale files
bar
% echo *(/) # Alleen directories
1 foo
% echo *(@) # Alleen symlinks
a baz
% echo *(-@) # Alleen broken symlinks
a
maar omdat alles en iedereen bash gebruikt, voornamelijk omdat 't de default is, twijfel ik.
Da's dezelfde reden dat veel mensen Windows blijven gebruiken

Ik ben bang dat ik te veel tijd kwijt ben om dat wat ik heb op een andere manier aan de praat te krijgen. Ik vraag mij ook af wat 't met je GUI doet, als je iets uitvoert dat op bash is gebaseerd.
Hoe bedoel je? sh scripts en bash scripts blijven gewoon dat en die blijven gewoon werken natuurlijk.
gekkie schreef op zondag 17 mei 2015 @ 15:37:
Als je ziet dat er in projecten toch vaak commits zijn om "bashims" te verhelpen ... zou ik denk ik je system shell maar op bash laten staan. Ben ook in Debian wel eens tegen iets aangelopen omdat de default shell dash was geworden .. wat dan toch weer ergens stuite op een bashism.
Er is niet zoiets als een "system shell", wat je bedoelt is bash als sh-implementatie gebruiken om buggy scripts een plezier te doen
Overigens draaien alle systemen die ik beheer met dash als /bin/sh, en dat leidt toch maar zelden tot problemen. Overigens is dat ook de default op zowel Debian als Ubuntu, dus me dunkt dat je dat toch veilig zou moeten kunnen gebruiken.