gpt4 book ai didi

linux - `dash` 是否支持 `bash` 样式数组?

转载 作者:IT王子 更新时间:2023-10-29 01:01:32 24 4
gpt4 key购买 nike

dash shell 环境中,我希望将字符串拆分为数组。以下代码在 bash 中有效,但在 dash 中无效。

IFS=""
var="this is a test|second test|the quick brown fox jumped over the lazy dog"
IFS="|"
test=( $var )
echo ${test[0]}
echo ${test[1]}
echo ${test[2]}

我的问题

dash 是否支持这种风格的数组。如果没有,是否有任何建议可以使用循环将其解析为另一种类型的变量?

最佳答案

dash 不支持数组。你可以尝试这样的事情:

var="this is a test|second test|the quick brown fox jumped over the lazy dog"
oldIFS=$IFS
IFS="|"
set -- $var
echo "$1"
echo "$2"
echo "$3" # Note: if more than $9 you need curly braces e.g. "${10}"
IFS=$oldIFS

注意:由于变量扩展 $var 未加引号,它会根据 IFS 拆分为多个字段,后者设置为竖线。这些字段成为 set 命令的参数,因此 $1 $2 等包含所寻找的值。

--(选项结束)用于使变量扩展的结果不能被解释为 set 命令的选项。

关于linux - `dash` 是否支持 `bash` 样式数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14594033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com