Null 병합 모드에서 쉘 변수 설정

Null 병합 모드에서 쉘 변수 설정

저는 변수를 목록의 첫 번째 "null이 아닌" 값으로 설정할 수 있는 "null 병합"을 정말 좋아합니다. 많은 언어가 이를 지원합니다. 예를 들면 다음과 같습니다.

씨#:

String myStr = string1 ?? string2 ?? "default";

자바스크립트:

var myStr = string1 || string2 || "default";

...등. 변수를 설정하기 위해 Bash에서 이 작업을 수행할 수 있는지 궁금합니다.

가짜:

MY_STR=$ENV{VAR_NAME}??$ANOTHER_VAR??"default";

답변1

POSIX 셸(및 inclusion bash)에 해당하는 내용은 다음과 같습니다.

${FOO:-${BAR:-default}}

또한보십시오:

${FOO-${BAR-default}}

변형은 빈 문자열로 확인되는지 여부가 아니라 변수가 설정되었는지 여부를 확인합니다(변수가 설정되었지만 비어 있는 경우에는 다릅니다).

답변2

간접적.

my_str="${var_name:-${another_var:-default}}"

관련 정보