bash의 파일에 연관 배열의 내용을 인쇄합니다.

bash의 파일에 연관 배열의 내용을 인쇄합니다.

Bash에서 연관 배열의 내용을 파일로 인쇄해야 합니다. 콘솔 출력 인쇄는 제대로 작동하지만 파일로 인쇄하려고 하면 요소 하나만 인쇄됩니다. 이게 내 코드야

 for KEY in "${!SYMBOLICLINK[@]}"; do
    printf "$KEY --> ${SYMBOLICLINK[$KEY]}" > /tmp/symlinks.txt
     # Print the KEY value
     echo " $KEY --> ${SYMBOLICLINK[$KEY]}"
      done   

누군가 내가 여기서 무엇을 놓치고 있는지 말해 줄 수 있습니까?

나도 이런 경험을 했어

BASH 연관 배열 인쇄

하지만 이건 도움이 안 돼

답변1

다음은 작동하지 않는 부분입니다.

printf "$KEY --> ${SYMBOLICLINK[$KEY]}" > /tmp/symlinks.txt

리디렉션하면 >이 파일을 덮어쓰게 됩니다. 원하는 경우 >>추가하세요.

일반적으로 안전성, 가독성 및 성능을 향상시키기 위해 다음과 같은 코드를 작성합니다.

for KEY in "${!SYMBOLICLINK[@]}"; do
    printf "%s --> %s\n" "$KEY" "${SYMBOLICLINK[$KEY]}"
done | tee /tmp/symlinks.txt

이유:

  • 더 간결함: 중복 문자열을 제거하고 반복당 두 개의 명령 실행을 저장합니다.
  • printf보다 낫다echo

관련 정보