![查看所有 Bash/Shell 脚本相关的常见问题解答](https://www.alaica.com/wp-content/uploads/linux-96.png)
如何在 Bash shell 下根据分隔符将字符串拆分为数组?
您需要使用 $IFS。它是一个特殊的 shell 变量。您可以根据需要更改 IFS 的值。内部字段分隔符 (IFS),用于扩展后的字拆分以及使用 read 内置命令将行拆分为字。默认值为<space><tab><newline>。您可以使用以下命令打印它:
cat -etv <<<"$IFS"
教程详情 | |
---|---|
难度级别 | 简单的 |
根权限 | 不 |
要求 | GNU/Bash + Unix |
美东时间。阅读时间 | 0分钟 |
$IFS 变量通常与读取命令、参数扩展和命令替换一起使用。
句法
创建一个名为 ns 的变量,如下所示:
ns = “ns1.example.com ns2.example.com ns3.example.com”
要将 $ns 变量(字符串)拆分为数组,请使用以下 IFS 语法:
OIFS = " $IFS " IFS = ' ' 读取 -a dnsservers <<< " ${ns} " IFS = " $OIFS "
或者使用一个衬垫,如下所示:
IFS = ' ' 读取 -a dnsservers <<< " ${ns} "
要显示存储在数组中的值,请输入:
回显 ${dnsservers[0]}
输出示例:
ns1.example.com
使用bash for 循环迭代数组值,即使用 bash for 循环语法打印所有元素:
for i in " ${dnsservers[@]} " 做 echo " $i " 完成