Switch-Process
Linux 및 macOS에서 cmdlet은 execv()
함수를 호출하여 POSIX 셸과 유사한 동작을 제공합니다.
구문
Switch-Process
[[-WithCommand] <String[]>]
[<CommonParameters>]
Description
일부 네이티브 Unix 명령은 ssh와 같은 항목을 실행하고 bash
기본 제공 명령 exec
사용하여 현재 프로세스를 대체하는 새 프로세스를 생성합니다. 기본적으로 exec
PowerShell에서 유효한 명령이 아닙니다. 이는 copy-ssh-id
같은 일부 알려진 스크립트 및 AzCLI의 일부 하위 명령에 영향을 줍니다.
Switch-Process
cmdlet은 네이티브 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 명령이 아닌 네이티브 실행 파일이어야 합니다.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
String[]
출력
참고
Switch-Process
cmdlet은 다른 POSIX 셸과 exec
호환성을 제공하기 위해 만들어졌습니다. 정상적인 조건에서 cmdlet은 PowerShell 스크립트에서 사용할 수 없습니다.
Switch-Process
파일 설명자가 처리되는 방식과 같이 POSIX 셸의 기본 제공 exec
함수와 기능 패리티가 없지만 대부분의 경우를 다루어야 합니다.