답변1
임시 변수(또는 함수)가 필요하다고 생각합니다. 존재하지 않으면 $TEST
확장은 비어 $test_or
있고 1
.
set test_or $TEST 1
echo $test_or[1]
또는 아직 존재하지 않는 경우 수정하려는 경우 $TEST
를 사용할 수 있습니다 set -q
.
set -q TEST; or set TEST 1
echo $TEST
답변2
변수를 참조하고 인라인 기본값을 제공하려면 echo
두 분기 모두에서 실행되는 조건을 포함하는 명령 대체를 사용할 수 있습니다.
> echo (if set -q someVar; echo $someVar; else; echo 'a default value'; end)
a default value
> set someVar 42
> echo (if set -q someVar; echo $someVar; else; echo 'a default value'; end)
42
이는 다소 장황하므로 변수가 설정되지 않은 경우 다른 줄에서 변수를 초기화할 수 있습니다.
> echo $otherVar
> set -q otherVar; or set otherVar 'a default value'
> echo $otherVar
a default value
기본 인라인을 정말로 대체하고 싶다면 간접 참조를 사용하여 함수에서 이를 수행한 다음 해당 함수를 호출할 수 있습니다.
> function orDefault
set -q $argv[1]; and echo $$argv[1]; or echo $argv[2]
end
>
> echo $moreVar
> echo (orDefault moreVar 'a default value')
a default value
> set moreVar 42
> echo (orDefault moreVar 'a default value')
42