Bash 5.3이 개선된 명령어 대체, 새로운 변수, C23 지원을 포함하여 출시되었습니다.

배시 리눅스

몇일 전에 GNU 프로젝트는 Bash 5.3의 새로운 버전 출시를 발표했습니다. 대부분의 Linux 배포판에서 기본적으로 선택되는 인기 있는 명령 인터프리터입니다.

이 새 버전 거의 3년의 작업을 나타냅니다셸의 언어와 동작을 개선할 뿐만 아니라 C23과 같은 최신 표준에 맞춰 새로운 기능을 도입합니다. 또한 Readline 8.3 라이브러리도 함께 출시됩니다.

Bash 5.3의 새로운 기능

Bash 5.3의 가장 주목할만한 변경 사항 중 하나는 다음과 같습니다. 새로운 명령어 대체 형식 도입: ${command;} 및 ${|command;}이를 통해 자식 프로세스를 생성하거나 파이프라인을 사용하지 않고도 명령 출력을 가로챌 수 있으므로 리소스 소비를 줄이고 성능을 향상시킬 수 있습니다. 결과는 REPLY 변수에 직접 저장할 수 있어 일반적인 출력 캡처 작업이 간소화됩니다.

GNU Bash 5.3에 도입된 또 다른 새로운 기능은 다음과 같습니다. 새로운 변수 GLOBSORT파일 경로를 확장할 때 정렬 순서를 정의합니다. 사용자는 이름, 크기, 수정 날짜 등을 기준으로 정렬할 수 있으며, 오름차순과 내림차순 옵션이 모두 제공됩니다.

또한 Bash 5.3에서는 여러 내장 명령이 개선되었습니다. compgen은 이제 생성된 완성을 변수에 저장할 수 있습니다. (-V 변수 이름), read 명령은 Bash 자동 완성 규칙과 함께 Readline 라이브러리를 사용할 수 있도록 -E 옵션을 추가합니다. Source 명령도 개선되어 이제 검색 경로를 수정하는 -p PATH를 지원합니다.

마찬가지로 명령 umask가 POSIX 사양을 완전히 준수하도록 조정되었습니다., printf는 다중 바이트 문자열에 대한 새로운 옵션과 문자 및 문자열의 대체 표현으로 개선되었습니다.

C23 호환성 및 K&R C와의 작별

가장 중요한 구조적 변화 중 하나는 C23 표준 채택 Bash 소스 코드에서. 결과적으로, "K&R C" 모드에서 컴파일 지원이 제거되었습니다.C 언어의 초기부터 사용되어 온 기술입니다.

반면, Bash 5.3은 다음과 같은 여러 가지 로드 가능한 명령을 도입했습니다.

  • 케이브: 키-값 형식의 데이터로부터 연관 배열을 생성합니다.
  • 문자열 시간: 텍스트 형식의 날짜를 Unix 시간으로 변환합니다.
  • fltexpr: let의 동작을 에뮬레이트하여 부동 소수점 산술 연산을 수행할 수 있습니다.

또한, 동적 변수 BASH_MONOSECONDS가 추가되었습니다. 시스템 시간의 단조로운 카운터를 제공합니다시간적 안정성이 중요한 작업에 유용합니다.

POSIX 모드에서 Bash는 이제 < 및 > 연산자를 사용하여 문자열 비교를 수행합니다. 지역 설정을 존중합니다. 또한 test, trap, wait, bind와 같은 명령의 동작을 표준 요구 사항에 맞춰 정렬합니다. 예를 들어, trap -P는 각 신호의 trap 동작을 출력하고, wait -n은 종료된 프로세스 및 대체 프로세스 관리를 개선합니다.

라인 8.3

Bash의 보조 라이브러리인 Readline 라이브러리도 대대적인 업데이트를 받았습니다. 가장 주목할 만한 새로운 기능은 다음과 같습니다.

  • 검색-대소문자 무시: 기록에서 대소문자를 구분하지 않고 검색할 수 있습니다.
  • 내보내기 완료: 단어의 완성 가능한 단어를 외부 처리를 위해 내보냅니다.
  • 실행-명명-명령: 스크립팅과 사용자 정의에 유용한 표준 입력에서 읽은 이름의 명령을 실행합니다.
  • 개선된 매크로 지원, 새로운 구성 가능 변수, 재개(SIGCONT) 후 화면 크기에 대한 더 나은 처리.

Linux에 Bash 설치 및/또는 업데이트

Linux에 Bash를 설치하거나 업데이트하는 데 관심이 있는 분들은 사용 중인 배포판에 따라 다르다는 점을 알아두시기 바랍니다. 아래에서 주요 배포판에서 설치하는 방법을 설명하겠습니다.

Debian 기반 배포판(예: Ubuntu, Linux Mint)에서

sudo apt install --only-upgrade bash

이렇게 하면 Bash가 공식 저장소에서 제공되는 최신 버전으로 업데이트됩니다.

처음부터 설치하려는 경우(예를 들어, 매우 최소한의 시스템에):

sudo apt install bash

Red Hat 기반 배포판(예: Fedora, CentOS, RHEL)

sudo dnf update bash Bash를 설치하려면(아직 설치되지 않은 경우):
sudo dnf 설치 bash

Arch Linux 및 파생 버전(예: Manjaro)

sudo pacman -Syu bash

이렇게 하면 전체 시스템과 함께 Bash도 업데이트됩니다. Bash만 설치하려면:

sudo pacman -S bash

선호하는 소스로 추가