Isso parece desejável para você?
// Replace macros in each .js file
cd('lib');
ls('*.js').forEach(function(file) {
sed('-i', 'BUILD_VERSION', 'v0.1.2', file);
sed('-i', /.*REMOVE_THIS_LINE.*\n/, '', file);
sed('-i', /.*REPLACE_LINE_WITH_MACRO.*\n/, cat('macro.js'), file);
});
cd('..');
Em caso afirmativo, ShellJS pode ser interessante, é
a portable (Windows included) implementation of Unix shell commands on top of the Node.js API.
Não tenho certeza se isso pode ser usado como um shell de login com recursos completos. (Talvez com algum embrulho?)
Você poderia argumentar que não é realmente um shell, mas você sabe TermKit ? É feito de Node.js + Webkit, você poderia usar JS para estendê-lo (eu acho); a linguagem shell ainda é Bash (-ish).