Это работает только для элементов, которые сами не содержат пробелов. Смысл наличия массива в вашей оболочке - разрешать такие элементы.

амене внешних команд в сценарии оболочки я использовал массив, чтобы избавиться от awkNF.

Теперь, так как я перешел с 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

Я использую OpenBSD, sh, и он имеет точно такой же размер, как и ksh. Изменение выше на/bin/shКажется, что следующее не работает:

set -A "$RANGE"
set -- "$RANGE"

Как я мог реализовать вышеуказанный скрипт в/bin/sh? (Обратите внимание, что он работает нормально, если вы вызываете Bash с--posixэто не то, что я ищу.)

Ответы на вопрос(2)

Ваш ответ на вопрос