Ouvi algumas coisas sobre os recursos do PowerShell. Algumas delas parecem características típicas dos shells do Unix.
Parece que o Powershell inclui a tubulação e os comandos, semelhantes aos scripts de shell. Mas ainda não testei (sem Windows), por isso posso estar errado.
Então, minha pergunta é: o Powershell é semelhante a um shell Unix ou o conceito é diferente?
Se o último: em que pontos o conceito difere?
unix
shell
powershell
Mnementh
fonte
fonte
Respostas:
O PowerShell é superficialmente semelhante aos shells do Unix. O PowerShell possui aliases para muitos dos comandos com os quais você está acostumado no Unix, como ls, rm, cp, mv etc. No entanto, a maneira como os cmdlets por trás dos aliases funcionam é bem diferente.
Em um shell * nix, tudo é baseado em texto; portanto, a saída de um comando pode ser canalizada para outro, mas o programa receptor deve saber como analisar / interpretar o texto do pipeline. Essa é a principal diferença entre os shells do PowerShell e * nix ... no PowerShell, tudo o que é passado é um objeto.
A conseqüência disso é que a canalização de um comando para outro não é apenas canalizar stdout para stdin. Ele está direcionando um objeto .net completo para o receptor. Portanto, o receptor só precisa saber como lidar com um objeto desse tipo. Ele não precisa implementar nenhuma análise de texto, mas precisa entender como chamar métodos e propriedades (membros) do objeto de entrada.
Em um programa de linha de comando * nix, você escreveria um código que lê de stdin e analisa suas informações do texto que outro programa gerou. No PowerShell, você faria algo assim:
Chamar esse código na linha de comando pode parecer com:
Você também pode fazer o mesmo que acima, usando o mecanismo de tubulação, mas pode ver a principal diferença aqui: estamos passando um objeto e não um texto:
Esquecendo essa grande diferença, eu diria que existem outras semelhanças superficiais, mas principalmente apenas sintaticamente. A sintaxe do PowerShell parece ter sido projetada com os usuários do shell * nix em mente; portanto, grande parte do estilo de linguagem é semelhante.
fonte