저는 변수를 목록의 첫 번째 "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}}"