Bash脚本内部引用数据

时间:2015-04-16 17:43:40

标签: bash unix

以下内容将从外部文件中读取并输出数据:

#!/bin/bash

while IFS='|' read hostname nickname; do

echo $hostname $nickname

done < "list.dat"

list.dat文件是:

firstserver|joe
secondserver|henry
thirdserver|jack

但我想将list.dat实际存储在脚本本身(不是外部),但不知道如何将其作为变量/数组引用并从中读取相同的结果。 ..

3 个答案:

答案 0 :(得分:6)

尝试使用here document

#!/bin/bash
while IFS='|' read hostname nickname; do
echo $hostname $nickname
done <<LIMIT
firstserver|joe
secondserver|henry
thirdserver|jack
LIMIT

答案 1 :(得分:2)

Here strings根据我的意愿传递变量或字符串:

#!/bin/bash
input="firstserver|joe
secondserver|henry
thirdserver|jack"

while IFS='|' read hostname nickname; do

echo $hostname $nickname

done <<< "$input"

答案 2 :(得分:2)

如果您可以使用bash 4,我会使用关联数组:

declare -A servers=(
    ["firstserver"]=joe
    ["secondserver"]=henry
    …
)

for hostname in "${!servers[@]}"; do
    echo "$hostname" "${servers[$hostname]}"
done

这假定主机名是唯一的。