ShellJS é uma implementação portable para Linux, OS X e Windows de comandos de Shell Unix da API Node.js. Você pode usá-lo para eliminar a dependência do Script Shell em Unix, mantendo seus comandos familiares e poderosos. Você também pode instalá-lo __globalment__e para que você possa executá-lo a partir de projetos externos!
O projeto é testado em projetos como
E muitos mais.
Se você quiser apenas comandos UNIX, confira o novo projeto shelljs/shx, um utilitário para shelljs na linha de comando.
shx mkdir -p foo
shx touch foo/bar.txt
shx rm -rf foo
Via npm
npm install [-g] shelljs
var shell = require('shelljs');
if (!shell.which('git')) {
shell.echo('Desculpe, este script requer o git.');
shell.exit(1);
}
// Copiar ou remover arquivos
shell.rm('-rf', 'out/Release');
shell.cp('-R', 'stuff/', 'out/Release');
// Substituir macros em cada arquivo .js
shell.cd('lib');
shell.ls('*.js').forEach(function (file) {
shell.sed('-i', 'BUILD_VERSION', 'v0.1.2', file);
shell.sed('-i', /^.*LINHA_PARA_REMOVER.*$/, '', file);
shell.sed('-i', /.*TROCAR_LINHA_QUE_CONTENHA_ISSO.*\n/, shell.cat('macro.js'), file);
});
shell.cd('..');
// Executar ferramenta externa de forma síncrona
if (shell.exec('git commit -am "Auto-commit"').code !== 0) {
shell.echo('Error: Git commit failed');
shell.exit(1);
}
Já não recomenda-se usar uma importação global para ShellJS (ou seja, require(‘shelljs / global’)). Embora ainda seja suportado por conveniência, isso polui o namespace global e, portanto, só deve ser usado com cautela.
Em vez disso, recomenda-se uma importação local (padrão para pacotes npm)
var shell = require('shelljs');
shell.echo('hello world');
Todos os comandos são executados de forma síncrona, salvo indicação em contrário. Todos os comandos aceitam caracteres globbing do bash (*,?, etc.), compatíveis com o módulo node glob module.
Para comandos e recursos menos utilizados, consulte a wiki.
var str = cat('file*.txt');
var str = cat('file1', 'file2');
var str = cat(['file1', 'file2']);
Opções disponíveis:
Opções disponíveis:
Opções disponíveis:
Exemplos:
sed('-i', 'VERSAO_DO_PROGRAMA', 'v0.1.3', 'source.js');
sed(/.*DELETE_ESSA_LINHA.*\n/, '', 'source.js');
Como o Unix sed, o ShellJS sed suporta regex
sed(/(\w+)\s(\w+)/, '$2, $1', 'file.txt');
https://github.com/shelljs/shelljs
http://www.terminalroot.com.br/shell/
shellscript bash javascript unix