
例如,我想根据第一行的长度动态执行第二行:
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