Bash 5의 새로운 기능 bash 5의

나는 관계없는 것을 위해 공식 bash 저장소 (보통 이것을하지는 않는다)를 겪었지만 bash 5가 이미 베타 버전이라는 것을 알았습니다. bash 5의 새로운 기능에 대해 궁금했지만 정보를 찾을 수 없었습니다. Bash 4.4와 5 버전 사이의 변경 사항을 요약 할 수 있습니까?



답변

bash릴리스 4.4와 5.0 (2019-01-07 릴리스) 사이 의 변경 사항은 소스 배포 의 NEWS파일에서 찾을 수 있습니다 bash.

여기에 링크가 있습니다 (여기에 나열하기에는 변경 사항이 너무 많습니다).


답변

나와 같이 전체 변경 내역 아닌 헤드 라인 기능을 찾고 있다면 관리자 Chet Ramey 의이 게시물 이 그 위에 있습니다. 흥미로운 섹션은 다음과 같습니다.

이 릴리스는 bash-4.4의 몇 가지 뛰어난 버그를 수정하고 몇 가지 새로운 기능을 소개합니다. 가장 중요한 버그 수정은 nameref 변수가 어떻게 해결되는지에 대한 점검과 퍼징을 통해 발견 된 여러 범위를 벗어난 메모리 오류입니다. Posix 표준 해석을 준수하기 위해 단어 분리가 수행되지 않는 다양한 상황에서 $ @ 및 $ *의 확장에는 여러 가지 변경 사항이 있으며 Posix 준수에 대한 코너 케이스를 해결하기위한 추가 변경 사항이 있습니다.

가장 주목할만한 새로운 기능은 BASH_ARGV0, EPOCHSECONDS 및 EPOCHREALTIME과 같은 몇 가지 새로운 셸 변수입니다. `history ‘내장은 히스토리 항목의 범위를 제거하고 히스토리 목록의 끝에서 오프셋으로 부정적인 인수를 이해합니다. 로컬 변수가 이전 범위에서 이름이 같은 변수의 값을 상속 할 수있는 옵션이 있습니다. 활성화되면 쉘이 연관 배열 첨자를 한 번만 확장하려고 시도하는 새로운 쉘 옵션이 있습니다 (산술 표현식에서 사용될 때 문제임). `globasciiranges ‘쉘 옵션은 이제 기본적으로 활성화되어 있습니다; 구성시 기본적으로 해제로 설정할 수 있습니다.

bash-4.4와 bash-5.0 사이에는 호환되지 않는 몇 가지 변경 사항이 있습니다. nameref 변수가 해결되는 방식의 변경은 호환성 문제를 최소화하려고 시도했지만 nameref의 일부 사용이 다르게 동작한다는 것을 의미합니다. 확장 디버깅 모드가 활성화 된 경우 기본적으로 셸은 시작시 BASH_ARGC 및 BASH_ARGV 만 설정합니다. 무조건 설정되었으며 스크립트에 많은 인수가 전달 될 때 성능 문제를 일으킨 것에 대한 감독이었습니다.

그는 더 많은 것을 원할 경우이 두 파일을 참조합니다.

  • 뉴스 : 자세한 내용 (Kusalananda의 답변에도 있음)
  • 변경 사항 : 대부분의 세부 사항

답변

`history ‘내장은 히스토리 항목의 범위를 제거하고 히스토리 목록의 끝에서 오프셋으로 부정적인 인수를 이해합니다.

범위 삭제에 대한 예 :

history -d 123-130

또는 마지막 10을 삭제하십시오.

history -d -10--1

Bash 5 Man Page 에서 발췌 :

‘역사’

옵션이 제공되면 다음과 같은 의미를 갖습니다.

‘-d OFFSET’OFFSET 위치에서 히스토리 항목을 삭제합니다. OFFSET이 양수이면 기록이 표시 될 때 표시되는대로 지정해야합니다. OFFSET이 음수 인 경우 마지막 기록 위치보다 1이 큰 것으로 해석되므로 음수 인덱스는 기록의 끝부터 카운트 백되며 ‘-1’의 색인은 현재 ‘history -d’명령을 나타냅니다.

‘-d START-END’START와 END 위치 사이의 히스토리 항목을 포함하여 삭제하십시오. START 및 END의 양수 및 음수 값은 위에서 설명한대로 해석됩니다.

내 관련 답변보기 : bash 기록 범위 삭제