![변수를 생성하고 변수에 값을 할당합니다.](https://linux55.com/image/83272/%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%83%9D%EC%84%B1%ED%95%98%EA%B3%A0%20%EB%B3%80%EC%88%98%EC%97%90%20%EA%B0%92%EC%9D%84%20%ED%95%A0%EB%8B%B9%ED%95%A9%EB%8B%88%EB%8B%A4..png)
Bash 매뉴얼에 따르면 매개변수에 값이 할당되면 매개변수가 설정됩니다.
Bash에는 두 가지 개념이 있습니다.
- 변수가 있습니다
- 변수에 값이 할당되었습니다. 즉, 설정되었습니까?
unset
변수나 함수를 삭제합니다.unset
변수 생성 여부- 존재하지 않게 되거나,
- 아직 거기에 있지만 값이 할당되지 않았나요?
b=
변수에 값을 할당하시겠습니까b
?b
이제 결정됐나요?변수가
declare
존재하더라도 변수를 생성합니까?
답변1
변수가 설정되지 않으면 존재하지 않는 것입니다. 예를 들어,
unset var
echo ${var?"this is not set"}
-bash: var: this is not set
쉘은 다음을 보여줍니다.에러 메시지설정되지 않은 경우 var
. 수행되지 않았습니다 echo
. (변수를 확인하고 존재하는 변수에 값을 할당하는 방법은 bash 매뉴얼 페이지를 확인하세요(그러나 값이 있거나 값이 없거나 존재하지 않는 변수일 수 있음).)
더 일반적인 경우는 일반적으로 오류 없이 교체하는 것이며 다음과 같이 처리됩니다.
unset var
echo ${var:-This is a new value}
This is a new value
변수가 존재하고 값을 갖습니다. 예를 들어,
var=123
echo ${var?"this is not set"}
123
변수가 존재하지만 비어 있습니다( ""
)
var=
echo ${var?"this is not set"}
echo 에 의해 출력된 값 var
, 여기에는 아무것도 포함되지 않고 일반적인 개행 문자가 뒤따릅니다.
과제는 다음과 같습니다.
var=123
echo $var
123
선언은 변수에 속성을 할당하는 데 사용됩니다(자세한 내용은 bash 매뉴얼 페이지 typeset
또는 declare
아래 참조 **shell builtin commands**
).