it-gundan.com

PowerShell과 동등한 Unix?

복잡한 셸 명령이 텍스트 출력을 AWK 로 구문 분석 할 때 항상 어색함을 발견했습니다. 기본적으로 구조화 된 데이터를 텍스트로 변환 한 다음 텍스트를 다시 구문 분석하여 구조화 된 데이터로 돌아갑니다.

PowerShell 은 텍스트 대신 셸 명령간에 형식화 된 개체를 파이프 할 수 있도록하여 이러한 문제를 방지하는 Windows 셸입니다.

PowerShell과 같이 텍스트 기반이 아닌 객체 기반의 Unix 셸이 있습니까?

21
Wim Coenen

아니, 그 반대입니다. 숟가락 ^ H ^ H ^ H 구조화 된 데이터가 없습니다. 텍스트 만 있습니다.

Unix 철학의 큰 부분은 텍스트를 출력하고 텍스트를 입력으로 받아들이는 아이디어에 기반합니다. 이에 대한 좋은 설명이있는 " The Art of Unix Programming "를 읽어 보는 것이 좋습니다.

오해하지 마십시오. 나는 당신의 요점을 이해하고 당신이 무엇을 얻으려고하는지 알고 있습니다. Ruby 및 Python의 대화 형 인터프리터와 같은 것들이 있습니다. 쉘로 사용할 수 있지만 Bash만큼 기본 작업에 친숙하지 않습니다. 예를 들어 디렉토리를 변경해보십시오.

또한 셸에서 개체를 사용하는 것이 전부는 아닙니다. 당신의 Shell 만 이것을 지원한다면, Unix에서 당신은 손실을 입을 것입니다. 모든 표준 Unix 텍스트 조작 도구는 grep, awk, sed 등과 같이 변경되어야합니다.

몇 년 전부터 이런 것을 만들려는 시도가 있었다고 생각하지만 이름이 기억 나지 않고 오랫동안 들어 본 적이 없습니다. 아마 이륙하지 않을 것입니다.

24
wzzrd

실제로 PowerShell (Mono 위에)을 구현하는 것을 목표로하는 Pash 라는 프로젝트가 있지만 중단 된 것 같습니다.

10
Mark Probst

PowerShell은 2016 년에 오픈 소스가되었습니다. 그 이후로 점점 더 많은 다중 플랫폼이 제공되고 있습니다. 소스 코드는 GitHub 에서 사용할 수 있으며 많은 UNIX 계열 시스템 용 설치 패키지도 있습니다.

4
user147505

목표가 PowerShell과 유사성을 공유하는 프로젝트가 있습니다. Hotwire . 일반 sh와 python 스크립팅 및 창/그래픽 환경)을 결합합니다.

객체 지향 파이프 라인 을 기반으로 기존 프로그램을 래핑하거나 Python 라이브러리를 사용하여 자체 객체로 확장 할 수 있습니다.

4
elmarco

해석 된 (또는 컴파일 된) 스크립트를 많이 작성한 다음 인터프리터의 셸 내에서 호출하여 원하는 경우 개체를 반환하거나 보존하는 등 대부분의 작업을 수행 할 수 있다고 생각합니다.

적어도 Ruby, Perl, Python, Haskell (예 : GHCi), JavaScript (예 : node.js), Matlab 및 확실히 다른 언어로이 작업을 수행 할 수 있습니다.

1
Kevin Cantu

3 년 후 또 다른 생각 : XML 또는 JSON을 사용하여 텍스트 스트림으로 객체를 표현하는 것이 가능합니다. 저는 JSON (단순함)을 선호하며 실제로 기존의 * NIX 유틸리티 JSON 지원을 제공하는 프로젝트가 있습니다. 예 : https://github.com/step-/JSON.awk

AWK와 같은 클래식 * NIX 프로그램에 대해 객체 유형 모델을 사용할 때의 한 가지 문제는 실제로 OO 지원이 없다는 것입니다. 예를 들어, AWK에는 연관 배열이 있지만 배열은 다중이 아닙니다. -dimensional (AWK 배열의 각 요소는 숫자 또는 문자열이어야합니다. 배열은 AWK에서 배열 객체가 될 수 없습니다).

1
samiam