HowTo:Bash Shell将字符串拆分为数组
时间:2020-01-09 10:45:54 来源:igfitidea点击:
如何在Bash shell下将基于定界符的字符串拆分为数组?
您需要使用$IFS。
这是一个特殊的shell变量。
您可以根据需要更改IFS的值。
内部字段分隔符(IFS),用于在扩展后进行单词拆分,并使用read Builtin命令将行拆分为单词。
默认值为<space> <tab> <newline>
。
您可以使用以下命令打印它:cat -etv
$IFS变量通常与读取命令,参数扩展和命令替换一起使用。
语法
创建一个名为ns的变量,如下所示:
ns="ns1.theitroad.local ns2.theitroad.local ns3.theitroad.local"
要将$ns变量(字符串)拆分为数组,请使用以下IFS语法:
OIFS="$IFS" IFS=' ' read -a dnsservers <<< "${ns}" IFS="$OIFS"
或者按以下方式使用一种衬板:
IFS=' ' read -a dnsservers <<< "${ns}"
要显示存储在数组中的值,请执行:
echo ${dnsservers[0]}
输出示例:
ns1.theitroad.local
使用bash for loop遍历数组值,即使用bash for loop语法打印所有元素:
for i in "${dnsservers[@]}" do echo "$i" done