ref*_*xiv 2 arrays bash for-loop
/ etc/trueuserdomains的每一行都包含用户名及其关联的域.我想ln -s /home/$user /var/www/vhosts/$domain
为每一行做.我能够用所需信息定义两个数组.但是,我无法以正确的顺序迭代数组.
#!/bin/bash
domain=(`cat /etc/trueuserdomains | cut -d: -f1`)
user=(`awk '{print $2}' /etc/trueuserdomains`)
for x in "${domain[@]}"
do
for y in "${user[@]}"; do
ln -s /home/$y /var/www/vhosts/$x
done
done
Run Code Online (Sandbox Code Playgroud)
这会为每个用户名重复一个域,即:
domain1.com user1
domain1.com user2
domain1.com user3
Run Code Online (Sandbox Code Playgroud)
关闭,但我需要:
domain1.com user1
domain2.com user2
domain3.com user3
Run Code Online (Sandbox Code Playgroud)
因此,基本上使用用户数组以正确的顺序遍历域数组.有任何想法吗?听起来像关联数组可能会有所帮助,但不幸的是,这个服务器只有Bash 3,它不支持它们.提前致谢!
我错过了什么:
while IFS=:\ read -r d u; do
echo ln -s /home/"$u" /var/www/vhosts/"$d"
done < /etc/trueuserdomains
Run Code Online (Sandbox Code Playgroud)
快乐时删除回音.
归档时间: |
|
查看次数: |
1886 次 |
最近记录: |