Bash의 조건부 할당

Bash의 조건부 할당

(and) 에서 bash주어진 경우 변수에 zsh값을 할당 $1하고 그렇지 않은 경우 기본값을 할당하는 가장 간결한 방법은 무엇입니까?w$14

나는 노력했다

w=$(( $1 != "" ? $1 : 4))

하지만 이렇게 하면 오류 메시지가 반환됩니다.

이보다 더 간단한 게 있나요

w=4; [[ $1 != "" ]] && w=$1

답변1

양식의 매개변수 확장 사용${parameter:-word}

${parameter:-word}기본값을 사용합니다. 인수가 설정되지 않거나 비어 있으면 단어의 확장이 대체됩니다. 그렇지 않으면 매개변수 값이 대체됩니다.

w=${1:-4}

콜론을 생략하면 설정되지 않은 매개변수만 테스트됩니다.

w=${1-4}

관련 정보