shell字符串转数组
时间: 2023-04-18 17:01:43 浏览: 84
shell中可以使用以下命令将字符串转换为数组:
```
str="a b c d e"
arr=($str)
```
这样就将字符串`"a b c d e"`转换为了数组`arr`,数组中的元素分别为`a`、`b`、`c`、`d`、`e`。需要注意的是,数组元素之间的分隔符是空格,如果字符串中包含其他分隔符,需要使用相应的分隔符进行转换。
相关问题
shell 字符串转数组
在 Shell 中,可以使用 IFS(Internal Field Separator)变量来指定字符串的分隔符。将字符串转换为数组的一种常见方法是将其分割成子字符串,并将这些子字符串存储在数组中。
以下是一个将字符串转换为数组的示例脚本:
```shell
#!/bin/bash
string="apple,banana,orange"
IFS=',' read -ra arr <<< "$string"
for i in "${arr[@]}"
do
echo "$i"
done
```
在此示例中,我们首先定义了字符串变量 `string`,它包含了一些水果名称,用逗号分隔。然后,我们通过设置 IFS 变量为逗号,使用 `read` 命令将字符串分成子字符串,并将这些子字符串存储在数组 `arr` 中。最后,我们使用一个循环遍历数组,并逐个打印出数组元素。
输出结果为:
```
apple
banana
orange
```
注意,如果要在脚本中使用数组,需要将数组名放在花括号 `{}` 中,例如 `${arr[@]}`。此外,也可以使用 `${#arr[@]}` 来获取数组的长度。
shell脚本字符串转数组
在Shell脚本中,我们可以使用多种方式将字符串转换为数组。以下是两种常用的方式:
1. 使用IFS分隔符
```shell
str="apple,banana,orange"
IFS=',' read -ra arr <<< "$str"
echo ${arr[0]} # 输出 apple
echo ${arr[1]} # 输出 banana
echo ${arr[2]} # 输出 orange
```
其中,`IFS=','`表示使用逗号作为分隔符,`read`命令将字符串读入并分割为多个变量,`-a`选项将其读入到一个数组中,`<<<`表示将字符串作为输入。
2. 使用tr命令
```shell
str="apple,banana,orange"
arr=($(echo $str | tr ',' ' '))
echo ${arr[0]} # 输出 apple
echo ${arr[1]} # 输出 banana
echo ${arr[2]} # 输出 orange
```
其中,`echo $str | tr ',' ' '`将逗号替换为空格,然后使用`$()`将其作为一个命令执行,并将结果赋值给数组`arr`。`${arr[0]}`表示数组中的第一个元素,以此类推。
需要注意的是,如果字符串中包含空格或特殊字符,需要使用引号将其括起来。
阅读全文