相关疑难解决方法(0)

如何在POSIX中标记数组?

在替换shell脚本中的外部命令时,我使用了一个数组来摆脱awk NF.

现在,由于我从bash转移到POSIX sh,我无法将数组标记为正确:

#!/bin/bash
export RANGE="0 1 4 6 8 16 24 46 53"
RANGE=($RANGE)
echo arrayelements: $((${#RANGE[@]}))
LAST=$((${#RANGE[@]}-1))
echo "Last element(replace NF): ${RANGE[$LAST]}"

# ./foo
arrayelements: 9
Last element(replace NF): 53
Run Code Online (Sandbox Code Playgroud)

我正在使用OpenBSD,sh和它的大小与ksh完全相同.更改为以上/bin/sh,似乎以下不起作用:

set -A "$RANGE"
set -- "$RANGE"
Run Code Online (Sandbox Code Playgroud)

我怎么能实现上面的脚本/bin/sh?(注意,如果你调用bash,它可以正常工作--posix,那不是我想要的.)

arrays bash posix sh

14
推荐指数
2
解决办法
1万
查看次数

标签 统计

arrays ×1

bash ×1

posix ×1

sh ×1