Equivalente Unix do PowerShell?

Equivalente Unix do PowerShell?

Sempre achei estranho quando comandos shell complexos envolvem a análise de saída de texto comAWK. Basicamente, estamos convertendo dados estruturados em texto e, em seguida, analisando o texto novamente para voltar aos dados estruturados.

PowerShellé um shell do Windows que evita esse problema, permitindo canalizar objetos digitados entre comandos do shell em vez de apenas texto.

Existem shells Unix baseados em objetos em vez de texto, como o PowerShell?

Responder1

Não, é o contrário. Não há dados estruturados de colher^H^H^H. Existe apenas texto.

Uma grande parte da filosofia Unix é baseada na ideia de produzir texto e aceitar texto como entrada. Você pode querer considerar a leitura "A arte da programação Unix", que tem uma boa explicação sobre isso.

Não me interpretem mal: entendo o que você quer dizer e sei onde você está tentando chegar. Existem coisas como os interpretadores interativos de Ruby e Python, que podem ser usados ​​como shell, mas não são tão amigáveis ​​para tarefas básicas quanto o Bash. Experimente mudar de diretório, por exemplo.

Além disso, usar objetos em um shell não é tudo isso. Se apenas o seuconchasuporta isso, no Unix, você ficaria perdido. Todas as ferramentas padrão de manipulação de texto do Unix teriam que ser alteradas, como grep, awk, sed, etc.

Acho que houve uma tentativa de criar algo assim há alguns anos, mas não consigo lembrar o nome e não ouço falar dele há muito tempo. Provavelmente não vai decolar.

Responder2

Na verdade, existe um projeto chamadoPashque visa implementar o PowerShell (em cima do Mono), mas parece ter parado.

Responder3

O PowerShell tornou-se de código aberto em 2016. Desde então, tem se tornado cada vez mais multiplataforma. O código fonte está disponível emGitHubassim como os pacotes de instalação para vários sistemas do tipo UNIX.

Responder4

Eu acho que você poderia conseguir a maior parte disso escrevendo vários scripts interpretados (ou compilados) e, em seguida, invocando-os no shell do interpretador, que retornará ou preservará seus objetos e assim por diante, se desejar.

Você pode fazer isso pelo menos em Ruby, Perl, Python, Haskell (por exemplo, GHCi), JavaScript (por exemplo, node.js), Matlab e certamente em outras linguagens...

informação relacionada