ksh: получить последний элемент массива - команда не найдена - PullRequest
0 голосов
/ 05 мая 2019

В моем скрипте одна из функций возвращает значение массива, и я хотел получить его последнее значение и cd в этот каталог

имя функции - ' folder ', которое возвращает массив, содержащий значения, скажем - 4.5.0 6.0 2.3.1

Если я использую - cd $(folders[-1]), я сталкиваюсь со следующей ошибкой - my_script.sh: line 350: folders[-1]: command not found

При использовании - cd ${folders[-1]}, я получаю - my_script.sh: line 350: folders: bad array subscript

Что мне здесь не хватает, спасибо

1 Ответ

2 голосов
/ 05 мая 2019

${foo[-1]} работает на моем кш.Но если это не для вас, возможно:

#!/bin/ksh93
foo=(1 2 3)
echo "${foo[-1]}" # Should print 3
echo "${foo[${#foo[@]} - 1]}" # Should also print 3

${#foo[@]} возвращает количество элементов в переменной массива, так что вы просто вычитаете один из них, чтобы получить последний элемент.

...