对于我当前的用例,我正在创建一个 scp 脚本,它将日志文件从一台服务器复制到一台或多台其他服务器。
IE
server1:/my/path1/log-files.* --> log_server1:/log/path1/server1
server1:/my/path2/log-files.* --> log_server2:/log/path/server1
server1:/my/path3/log-files.* --> log_server1:/log/path2/server1
我希望能够在 bash(版本 4)中使用关联数组(数组)进行日志文件配置,并通过将它们的名称放入索引数组来遍历所有 A.数组。
但是我很难理解如何使用变量作为 A. Array 的名称来引用命名的 A. Array。
例子:
#!/bin/bash
# GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu) from RedHat/CentOS 6.4
declare -A log_server1 log_server2
log_server1=([name]="ls1" [user]="user")
log_server2=([name]="ls2" [user]="user")
declare -A log1 log2 log3
log1=([log_server]="log_server1" [path]="/my/path1" [file]="log-files" [rpath]="/log/path1/server1")
log2=([log_server]="log_server2" [path]="/my/path2" [file]="log-files" [rpath]="/log/path/server1")
log3=([log_server]="log_server1" [path]="/my/path3" [file]="log-files" [rpath]="/log/path2/server1")
logs=(log1 log2 log3)
for log in ${logs[@]}
do
# How can I now refer to the A. Array by the name of "log1", etc ?
...
done