Bash : 연관 배열의 키로서의 공간

사용자 147505

Bash의이 코드

s="There are seven pencil"
declare -A A
while IFS= read -rn1 a; do
 [ -z "$a" ] || [ -n "${A[$a]}" ] && continue
 printf %s "$a"
 ((A[$a]++))    # A[$a]=x
done <<<"$s"
echo

이 라인을 생성

Ther a svn pcil

모든 공간이 인쇄됩니다. 이 동작이 문서화되었거나 다른 방식으로 예상됩니까?

그래도 ((A[$a]++))가로 A[$a]=x바뀌면 출력이 다음과 같이 변경됩니다.

Ther asvnpcil

따라서 이번에는 첫 번째 공간 만 인쇄됩니다.

차이점이 뭐야?

이것은 GNU bash, 버전 4.4.12 (1) -release (x86_64-pc-linux-gnu)에 있습니다.


비교할 세 번째 작업, 즉 let "A[$a]=x". 이상하게도 이전 둘 사이 어딘가에 있습니다. 모든 공백이있는 라인을 생성합니다. Ther a svn pcil. 그러나 isaac의 답변 에서 감소를 사용하면 A[$a]=x할당 처럼 작동 합니다.

$ unset A; declare -A A; let "A[' ']++"; declare -p A
declare -A A=([" "]="1" )

결국 나는 이것과 함께 버그 보고서를 보냈습니다. 여기 스레드가 있습니다.

이삭

핵심 문제는 산술을 사용하여 변수를 선언하는 것입니다.

바꾸다:

(( A[$a]++ ))

declare -A A["$a"]=1

그리고 반복되는 공백이 제거됩니다.


나에게 버그 인 것 같고 공간이 변수를 생성하지 못합니다.

$ declare -A A; (( A[" "]++ )); declare -p A
declare -A A

위의 답변을 게시 한 후 수정 사항 해결 :

차이점이 뭐야?

할당은 변수를 배열의 일부로 선언합니다.

$ unset A; declare -A A; A[" "]=1 ; declare -p A
declare -A A=([" "]="1" )

산술 확장 은 동등한 작업을 수행하지 못합니다 .

$ unset A; declare -A A; (( A[" "]=1 )); declare -p A
declare -A A

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

BASH 연관 배열 재 배열 키

분류에서Dev

연관 배열의 내용을 bash의 파일로 인쇄

분류에서Dev

Bash : 연관 배열의 총 키 수를 세나요?

분류에서Dev

Bash의 CSV를 사전 / 연관 배열로 읽기

분류에서Dev

Bash 2 개의 파일을 연관 배열로 변환

분류에서Dev

문자열에서 Bash 연관 배열?

분류에서Dev

연관 배열 내의 연관 배열

분류에서Dev

Makefile에서 bash 연관 배열 반복

분류에서Dev

Bash 스크립트의 연관 배열 문제

분류에서Dev

연관 배열의 배열 키 수정

분류에서Dev

Bash는 별 문자를 연관 배열의 단어로 취급합니다.

분류에서Dev

Bash 연관 배열 키에서 파일 목록 압축 해제

분류에서Dev

연관 배열 BASH에서 중복 키 병합

분류에서Dev

openscad의 연관 배열?

분류에서Dev

연관 배열의 트리

분류에서Dev

연관 배열로서의 PHP POST / GET?

분류에서Dev

연관 배열의 간접 매개 변수 확장

분류에서Dev

두 배열 간의 관계

분류에서Dev

두 배열 간의 관계

분류에서Dev

BASH 연관 배열 인쇄

분류에서Dev

BASH 연관 배열 인쇄

분류에서Dev

키-값 쌍의 배열을 연관 배열로 변환

분류에서Dev

연관 배열에서 단순 배열로의 PHP 저장 키 값

분류에서Dev

배열 내부의 연관 배열에서 키와 값 제거

분류에서Dev

연관 배열을 하나의 연관 배열로 푸시

분류에서Dev

bash에서 키 값 목록을 연관 배열로 변환하는 가장 최적의 코드 패턴은 무엇입니까?

분류에서Dev

연관 배열 PHP의 Findind 배열

분류에서Dev

(node) js의 '연관 배열'배열

분류에서Dev

(node) js의 '연관 배열'배열