기본 대체를 사용하여 피쉬 쉘에서 변수를 참조하는 방법


답변:


10

임시 변수 (또는 함수)가 필요하다고 생각합니다. 경우 $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

6

변수를 참조하고 기본값을 인라인으로 제공하려면 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.