#!/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' "$@"