쉘에서 다른 배열의 길이와 동일한 0으로 배열을 초기화하는 방법은 무엇입니까?

쉘에서 다른 배열의 길이와 동일한 0으로 배열을 초기화하는 방법은 무엇입니까?

예를 들어, 첫 번째 줄의 길이에 따라 두 번째 줄을 동적으로 실행하고 싶습니다.

DOMAINS=("gmail.com" "yahoo.com" "yahoo.co.uk" "yahoo.co.jp")
s_domain=(0 0 0 0)

답변1

적어도 최근 bash 버전에서는 매개변수 확장을 요소별로 배열에 적용할 수 있습니다.

s_domain=("${DOMAINS[@]/*/0}")

전임자.

$ DOMAINS=("gmail.com" "yahoo.com" "yahoo.co.uk" "yahoo.co.jp")
$ s_domain=("${DOMAINS[@]/*/0}")
$ printf '%s\n' "${s_domain[@]}"
0
0
0
0

답변2

for 루프를 사용하세요:

for i in "${DOMAINS[@]}"; do s_domain+=(0); done

관련 정보