Gno*_*ton 2 bash shell-script associative-array
我正在尝试根据导入的 passwd 文件创建用户目录,并尝试将数据加载到关联数组中: array[username]=directory 。我可以将字段加载到一个单独的数组中,但我无法获得正确的关联,因为每个字段都与所有目录相关联。
USERLIST=$(cat /usrmkr/in.out | awk -F ":" '{print $1}')
DIRLIST=$(cat /usrmkr/in.out | awk -F ":" '{print $6}')
declare -A USERARRAY
func_StoreData()
{
USERARRAY[$1]="$2"
return $?
}
for ((u=0;u<${USERLIST[@]};u++)); do
func_StoreData ${USERLIST[$u]} ${DIRLIST[$u]}
done
for i in ${!USERARRAY[@]}; do
echo "making directory for $i in ${USERARRAY[$i]}"
#Do stuff
done
Run Code Online (Sandbox Code Playgroud)
您可以直接使用 bash 阅读整个内容,告诉 read 在冒号上拆分:
declare -A userarray
while IFS=: read -r username password uid gid gecos home shell; do
userarray[$username]=$home
done < /usrmkr/in.out
Run Code Online (Sandbox Code Playgroud)