From: Junio C Hamano Date: Thu, 18 Jul 2024 15:00:28 GMT Subject: Re: [PATCH v5 5/6] check-whitespace: detect if no base_commit is provided Message-ID: In-Reply-To: <20240718081605.452366-6-karthik.188@gmail.com> Karthik Nayak writes: > + - | > + R=${CI_MERGE_REQUEST_TARGET_BRANCH_SHA-${CI_MERGE_REQUEST_DIFF_BASE_SHA?}} > + > + if test -z "$R" > + then > + echo "CI_MERGE_REQUEST_DIFF_BASE_SHA should always exist!" > + exit 1 > + fi The same comment applies as the previous step. R=${A-${B:?}} || exit should be sufficient. A demonstration. $ unset A; unset B; C=${A-${B:?}} && echo "C=$C" bash: B: parameter null or not set $ A=a; unset B; C=${A-${B:?}} && echo "C=$C" C=a $ unset A; B=; C=${A-${B:?}} && echo "C=$C" bash: B: parameter null or not set $ unset A; B=b; C=${A-${B:?}} && echo "C=$C" C=b $ A=a; B=b; C=${A-${B:?}} && echo "C=$C" C=a Note that the broken case we do not see C= becaues the assignment fails with non-zero status. Thanks.