温馨提示×

shell字符串转数组空格问题怎么解决

小亿
174
2023-04-25 15:44:41
栏目: 编程语言

在Shell中,可以使用`IFS`(Internal Field Separator)环境变量来设置分隔符,从而将字符串转换为数组。默认情况下,`IFS`的值是空格、制表符和换行符。

当字符串中包含空格时,可以通过将`IFS`设置为只包含换行符的值来解决该问题。例如:

#!/bin/bash

str="apple banana orange"

IFS=$'\n' arr=($str)


echo "${arr[0]}"

echo "${arr[1]}"

echo "${arr[2]}"

上面的示例代码将`IFS`设置为只包含换行符的值,然后使用空格分隔符将字符串`str`转换为数组`arr`。这样,即使字符串中包含空格,也可以正确地将其转换为数组。

输出结果为:

apple

banana

orange

注意,当`IFS`被修改时,需要在转换完成后将其恢复为默认值,避免对后续代码的影响。可以使用以下代码将`IFS`恢复为默认值:

IFS=$' \t\n'

0