我有一个变量,它有多个用‘:’分隔的值,如何才能在bash脚本中分别获取这些值以接收ABC、CDE STORY、BJD的值?
abc: 10 cde story: 123abc bjd: I have some values
exdqitrt1#
我对你的问题有点困惑。这些变量是否存储在单独的文件中,如‘vars.txt’?如果你能提供更多的背景信息,那将是非常有帮助的。也就是说,请查看https://linuxhint.com/bash_split_examples/以获取如何在bash中拆分字符串的示例。TL;DR是这样的:如果您有bash变量:
text="Hello:World"
并且您想要用分隔符“:”将其分开,则必须使用IFS变量。
IFS=":"
这似乎是一个特殊的bash变量,它影响read命令的工作方式。因此,对于您来说,它可能看起来像这样:
read
some_var="10:123abc:i have some values" IFS=":" read -a var_array <<< "$some_var" abc=${var_array[0]} cde_story=${var_array[1]} bjd=${var_array[2]} echo "$abc, $cde_story, $bjd"
其输出为:
10, 123abc, i have some values
1条答案
按热度按时间exdqitrt1#
我对你的问题有点困惑。这些变量是否存储在单独的文件中,如‘vars.txt’?如果你能提供更多的背景信息,那将是非常有帮助的。
也就是说,请查看https://linuxhint.com/bash_split_examples/以获取如何在bash中拆分字符串的示例。TL;DR是这样的:
如果您有bash变量:
并且您想要用分隔符“:”将其分开,则必须使用IFS变量。
这似乎是一个特殊的bash变量,它影响
read
命令的工作方式。因此,对于您来说,它可能看起来像这样:
其输出为: