문자열 사이의 공백을 인쇄합니다.

문자열 사이의 공백을 인쇄합니다.
#!/bin/bash

ARRAY="185.18.207.66 31.18.212.113"

result=""

for i in $ARRAY
do  
    result=$(printf '%s %s' "$result" "$i" "checked")
done

paste <(printf "%s\n" $result)

IP 주소를 인쇄하려고 하는데 "checked"각 IP 주소에 문구를 추가합니다.

"checked"하지만 IP와 문구 사이의 공백은 인쇄할 수 없습니다.

위의 코드는 다음을 인쇄합니다.

185.18.207.66checked
31.18.212.113checked

아래와 같이 인쇄하려면 어떻게 해야 하나요?

185.18.207.66 checked
31.18.212.113 checked 

답변1

스크립트를 올바르게 완료하려면 개선해야 할 사항이 많이 있습니다.

  • 큰따옴표가 누락되었습니다.
  • 불필요한 외부 명령을 생성합니다.

그냥 배열을 사용하세요:

#!/bin/bash

ARRAY=(185.18.207.66 31.18.212.113)
printf '%s checked\n' "${ARRAY[@]}"

또는 "$@"POSIXly를 사용하여 이를 달성합니다.

#!/bin/sh

set -- 185.18.207.66 31.18.212.113

printf '%s checked\n' "$@"

관련 정보