下面的代码没有输出任何东西。
#!/bin/bash
declare -A a
cat input.txt | while read item value
do
if [ $item="owner" ] || [ $item="admin" ] || [ $item="loc" ] || [ $item="ser"]
then
a[$item]=$value
fi
done
echo ${a[owner]}
输入文件为:
owner sysadmin group
admin ajr
loc S-309
ser 18r97
comment noisy fan
我需要创建一个数组 a 仅用于所有者、管理员、loc 和 ser.
我期望回显 ${a[所有者]} 的输出是系统管理员组等等。
有什么帮助吗?
编辑:我认为这可能与所有者是系统管理员组有关,我如何将其(两个带空格的单词)读入变量(值)?
这是因为您正在使用管道的子外壳。在子外壳中所做的所有更改仅是子外壳的本地更改,不会反映在父外壳中。
使用这个:
#!/bin/bash
declare -A a
while read item value
do
if [ $item="owner" ] || [ $item="admin" ] || [ $item="loc" ] || [ $item="ser"]
then
a[$item]=$value
fi
done < input.txt
echo ${a[owner]}
sysadmin group