相关疑难解决方法(0)

在bash 3中创建关联数组

在彻底搜索了一种在bash中创建关联数组的方法后,我发现它declare -A array可以解决这个问题.但问题是,它仅适用于bash版本4,服务器在我们系统中的bash版本是3.2.16.

如何在bash 3中实现某种类似关联数组的hack?这些值将传递给类似的脚本

ARG=array[key];

./script.sh ${ARG}
Run Code Online (Sandbox Code Playgroud)

编辑:我知道我可以在awk或其他工具中执行此操作,但我正在尝试解决的方案需要严格的bash.

bash

29
推荐指数
3
解决办法
3万
查看次数

Bash 关联数组中带空格的键

我正在尝试将结构化文件读入 Bash 中的关联数组。该文件在每一行中存储一个人名和一个人地址。例如:

person1|address1
person2|address2
...
personN|addressN
Run Code Online (Sandbox Code Playgroud)

我正在使用下面的脚本。

#!/bin/bash
declare -A address
while read line
do
    name=`echo $line | cut -d '|' -f 1`
    add=`echo $line | cut -d '|' -f 2`
    address[$name]=$add
    echo "$name - ${address[$name]}"
done < adresses.txt

for name in ${!address[*]}
do
    echo "$name - ${address[$name]}"
done
Run Code Online (Sandbox Code Playgroud)

脚本正常工作。但是,在 FOR 循环中,当人名有空格(例如“John Nobody”)时,我遇到了一些问题。我怎样才能解决这个问题?

linux arrays bash shell ubuntu

3
推荐指数
1
解决办法
2928
查看次数

标签 统计

bash ×2

arrays ×1

linux ×1

shell ×1

ubuntu ×1