"${pattern:?word}" 형식을 사용하여 매개변수 확장으로 인해 발생한 오류 메시지를 수정할 수 있나요?

"${pattern:?word}" 형식을 사용하여 매개변수 확장으로 인해 발생한 오류 메시지를 수정할 수 있나요?

다음 스크립트가 있다고 가정해 보겠습니다 test.sh.

#! /bin/sh -
printf '%s\n' "${1:?empty or missing argument}"

명령줄 인수 없이 실행할 경우 동작은 다음과 같습니다.

$ ./test.sh
./test.sh: 2: ./test.sh: 1: empty or missing argument

질문:변경될 수 있나요?"./test.sh:2:"오류 메시지의 일부인가요?

답변1

귀하의 질문에 대한 대답은 "아니요"입니다. 해당 구문을 사용하면 설명하는 스크립트, 줄 번호 및 표준 오류를 참조하는 변수가 출력됩니다. 이를 변경하려면 표준 오류를 프로세스로 파이프하여 오류 메시지를 출력하는 스크립트 자체를 실행하는 스크립트에서 원하는 형식으로 변환합니다.

관련 정보