차이

2017-10-26 3 views
4

고려 다음 쉘 번호 :차이

unset foo 
echo "${foo-'}'}" 
결과가있는 셀을 사용하는 의존

:

  • 떠들썩한 파티 : '}'
  • KSH : ''}
  • tcsh : Missing }.
  • zsh : ''}

POSIX 표준에 따라 어떤 셸이 작동합니까?

+0

내가 화산재와 대시 POSIX-compliants 생각합니다. – Pawamoy

+0

POSIX 셸의 예상 출력은 무엇입니까? – clemens

답변

1

는 POSIX 호환 쉘은해야 출력 :

''} 
+0

이유를 설명해 주시겠습니까? 또는 POSIX 호환 쉘에 관한 관련 웹 리소스를 가리 키시겠습니까? 또는 문제의 경우에 쉘 동작을 설명하는 POSIX 매뉴얼 관련 절? – l00p

+0

표현식을 큰 따옴표로 묶었습니다. 따라서 중괄호 안의 작은 따옴표는 구분 따옴표가 아닙니다. 기본적으로'$ {foo - '}'를 사용합니다. 즉, foo가 설정되지 않은 경우 작은 따옴표를 교체하십시오. 이것은 출력의 첫 번째 작은 따옴표입니다. 닫는 중괄호 뒤에 셸은 두 번째 작은 따옴표 뒤에 닫는 중괄호를 찾습니다. 이것도 여전히 가장 바깥 쪽을 둘러싼 따옴표 안에 있으므로이 두 문자도 함께 인쇄됩니다. 'echo $ {foo - '}'}'를 쓰면, 하나의 중괄호가 출력 될 것이다. – user1934428