Switch-Process

Linux 및 macOS에서 cmdlet은 함수를 execv() 호출하여 POSIX 셸과 유사한 동작을 제공합니다.

Syntax

Switch-Process
      [[-WithCommand] <String[]>]
      [<CommonParameters>]

Description

일부 네이티브 Unix 명령은 ssh와 같은 작업을 실행하고 bash 기본 제공 명령exec을 사용하여 현재 프로세스를 대체하는 새 프로세스를 생성합니다. 기본적으로 exec는 PowerShell에서 유효한 명령이 아닙니다. 이는 copy-ssh-id 및 AzCLI의 일부 하위 명령과 같은 일부 알려진 스크립트에 영향을 미칩니다.

cmdlet은 Switch-Process 네이티브 execv() 함수를 호출하여 POSIX 셸과 유사한 동작을 제공합니다. 이 cmdlet 및 해당 별칭 exec은 PowerShell 7.3.0에 추가되었습니다.

PowerShell 7.3.1은 exec 별칭을 Switch-Process를 래핑하는 함수로 변경했습니다. 이 함수를 사용하면 WithCommand 매개 변수에 잘못 바인딩되었을 수 있는 네이티브 명령에 매개 변수를 전달할 수 있습니다.

이 cmdlet은 Windows 이외의 시스템에서만 사용할 수 있습니다.

예제

예제 1 - 'exec'에 의존하는 명령 실행

이 예제에서는 PowerShell이 Windows가 아닌 시스템의 기본 셸이라고 가정합니다. ssh-copy-id 는 키 기반 인증을 위해 대상 머신에 공개 키를 배포하는 인기 있는 bash 스크립트입니다. 스크립트는 bash 명령에 exec따라 달라집니다.

ssh-copy-id user@host

기능을 PSExec 사용하도록 설정하면 스크립트가 ssh-copy-id 성공합니다.

매개 변수

-WithCommand

실행할 네이티브 실행 파일(및 매개 변수)을 지정합니다. 인수로 전달된 모든 추가 값은 첫 번째 명령으로 실행할 문자열 배열로 전달됩니다.

대상 명령은 PowerShell 명령이 아닌 네이티브 실행 파일이어야 합니다.

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

String[]

출력

Object

참고

Switch-Process 호환성을 제공하기 exec 위해 cmdlet이 만들어졌는데 다른 POSIX 셸입니다. 정상적인 조건에서 cmdlet은 PowerShell 스크립트에서 사용할 수 없습니다. Switch-Process 에는 파일 설명자가 처리되는 방법과 같이 POSIX 셸의 기본 제공 exec 함수와 기능 패리티가 없지만 대부분의 경우를 다루어야 합니다.