현대적인 조언은 다음을 사용하는 것입니다.
$(...)
이전 것 대신 :
`...`
주로 가독성을 높이고 중첩 시 탈출할 필요를 방지하기 위한 것입니다.
이 형식을 지원하지 않는 쉘은 무엇 $(...)
이며 오늘날에도 여전히 사용되는 쉘은 무엇입니까?
답변1
원래 Bourne 쉘, csh 또는 tcsh는 지원되지 않으며 명령 대체가 $()
필요하지 않습니다 .``
많은 UNIX 기반 운영 체제에서 Bourne 쉘은 더 이상 기본 쉘(/bin/sh)로 사용되지 않습니다. 그러나 이러한 셸은 역사적인 이유로 여전히 사용되고 있으므로 운영 체제 공급업체에서 제공합니다.
AIX와 HP-UX 모두 POSIX 호환 쉘로 /bin/sh를 가지고 있습니다. Bourne 쉘은 AIX에서 여전히 "bsh"와 작동합니다(그러나1995년AIX 4.1의 경우) 및 HP-UX 11.11 '/usr/old/bin/sh'(Bourne은 11.23에서 제거되었습니다). 이러한 전환이 언제 발생했는지는 확실하지 않지만 수년 전의 일입니다.
답변2
Solaris 10 및 이전 버전에서는 /bin/sh
지원되지 않습니다 $()
.
Solaris 10이 여전히 사용되고 있고 Sun은 이를 Solaris 10까지의 표준 호환 버전으로 교체하기를 원하지 않으며 대부분의 사람들이 이를 기본 /bin/sh
셸로 간주하기 때문에 오늘날에도 여전히 사용되고 있습니다.POSIX 호환 셸을 사용하여 스크립트를 이식 가능하게 실행하는 방법을 모릅니다..
Sun이 변경하지 않는 이유는 /bin/sh
규정되지 않은 동작에 의존하는 기존 쉘 스크립트를 손상시키지 않기 위해서입니다.