1
process_ls_entry() {
IFS=' ' read -r -a array <<< "$1"
declare -A LS_MAP
LS_MAP[entry]="${array[@]::1}"
LS_MAP[mode]="${array[@]:1:1}"
LS_MAP[size]="${array[@]:2:1}"
LS_MAP[num_blocks]="${array[@]:3:1}"
timestamp="${array[@]:4}"
timestamp=${timestamp// /_}
LS_MAP[timestamp]="${timestamp}"
# how to return?
}
a="temp_dir drwxr-xr-x 0 0 Fri Jul 13 07:08:00 2012"
output=($(process_ls_entry "$a"))
# entry -> temp_dir
# mode -> drwxr-xr-x
# size -> 0
# size -> 0
# timestamp -> Fri_Jul_13_07:08:00_2012
echo ${output[timestamp]}
我創建了一個功能如何從shell中的函數返回關聯數組?
如何正確地從shell腳本函數返回一個關聯數組?
讓他們成爲全球?我不確定是否有其他選擇。你使用哪一個shell(或一組shell) - 它很重要? POSIX沒有定義shell數組,索引或關聯,因此任何這種表示法都是普通POSIX shell的擴展(例如,由'dash'實現)。 –
我正在使用'GNU bash,版本4.3.11'。我其實有一個需要轉換成數組的字符串列表。 –