![쉘에서 다른 배열의 길이와 동일한 0으로 배열을 초기화하는 방법은 무엇입니까?](https://linux55.com/image/163908/%EC%89%98%EC%97%90%EC%84%9C%20%EB%8B%A4%EB%A5%B8%20%EB%B0%B0%EC%97%B4%EC%9D%98%20%EA%B8%B8%EC%9D%B4%EC%99%80%20%EB%8F%99%EC%9D%BC%ED%95%9C%200%EC%9C%BC%EB%A1%9C%20%EB%B0%B0%EC%97%B4%EC%9D%84%20%EC%B4%88%EA%B8%B0%ED%99%94%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
예를 들어, 첫 번째 줄의 길이에 따라 두 번째 줄을 동적으로 실행하고 싶습니다.
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