새로운 개발 대신에 "..."를 사용하거나 가르칠 이유가 있나요?

새로운 개발 대신에 "..."를 사용하거나 가르칠 이유가 있나요?

내가 이해한 바에 따르면, 중첩 및 이스케이프 구문이 더 쉽고 오류 발생 가능성이 적기 때문에 최신 $(...)명령 대체 구문이 이전 기반 구문보다 낫습니다 .`

/bin/sh또한 현대에 사용되는 대부분의 쉘은 다음을 지원하는 것으로 보입니다 $(…).

  • 세게 때리다
  • 금연 건강 증진 협회(따라서 BusyBox, 따라서 대부분의 임베디드 Linux)
  • 스프린트
  • FreeBSD /bin/sh

$(…)IEEE 1003.1에 의해 지정됩니다 .

그래서 저는 매우 관련된 두 가지 질문이 있습니다.

  • 스크립트가 특정 레거시 시스템에서 실행되어야 한다는 것을 알지 못하는 경우 새로 개발된 쉘 스크립트에서 `를 사용할 이유가 있습니까?
  • $(...)UNIX 프로그래밍 학생에게 를 작성하는 방법만 가르치고 다른 개발자의 쉘 스크립트를 읽을 때 접할 수 있는 구식 변형으로만 논의하지 않을 이유가 있습니까? `(매우 오래된 시스템을 사용하거나 비표준 시스템을 사용하는 경우 이 변형) 어떤 이유로)?

답변1

역따옴표가 자주 사용되기 때문에 이 문법 구조를 가르치는 것이 합리적입니다.

물론 $()스타일 명령 대체는 기본 스타일(및 표준 호환 구성)로 강조되어야 합니다.

백틱이 여전히 인기가 있는 이유는 무엇입니까? 입력할 때 문자를 저장하고 눈에 부담을 덜 주기 때문입니다.

답변2

나는 그들과 함께 프로그래밍하지 않으며 쉘 스크립트에서 역따옴표 대체를 사용하는 것을 쓸모없는 방법으로 가르치는 것은 괜찮습니다(합의된 것 같습니다). 그러나 나는 이것이 본질적으로 악하다고 생각하지 않으며 (적어도 Linux 명령줄의 평균 튜토리얼로 판단하면) 중첩되지 않을 수 있는 간단한 스니펫/한 줄짜리 코드에서 여전히 자주 사용됩니다. 필요한 것. 한 번만 할 것입니다.

바라보다명령 대체: 백틱 또는 달러 기호/괄호?.

답변3

$()이 구성은 현실 세계에서 이식 가능하지 않기 때문에 사용을 피합니다 . 네 개의 껍질을 나열하셨습니다. 주변 껍질보다 더 많은 변형(크기 순서?)이 있습니다. Solaris /bin/sh에서 스크립트를 실행해보고 어떻게 작동하는지 확인하세요.

반면, 기존 시스템에 대한 지원은 언제 중단되나요? 일을 하는 새로운 방식으로 결코 발전하지 않을 것입니까? 나는 당신이 자신의 판단을 믿어야 한다고 생각하며, 이전 방식에 비해 새로운 방식의 분명한 이점을 볼 수 있다면 그것을 선택하십시오... 이것은 그중 하나가 아닙니다. (개인적으로 배경이 더 명확하다고 생각합니다. 그렇지 않습니다. 쉘 변수 대체와 혼동되기 쉽습니다. 이는 다른 것입니다)

관련 정보