Убедитесь, что вашим JDK по умолчанию является Oracle JDK, а не OpenJDK. Многие дистрибутивы поставляются с OpenJDK по умолчанию из-за проблем с лицензированием, и даже если вы установите Oracle JDK, он может не быть по умолчанию.Запуск java -version
из терминала должен сказать вам, какая версия используется по умолчанию.
Со встроенными модулями Bash:
Это немного некрасиво, так как нам нужно разделить 5
, чтобы избежать запятой в конце:
$ printf '%s,' {1..4}; echo 5
1,2,3,4,5
Хотя, поскольку printf
может выводить данные непосредственно в переменную, это можно обойти и удалить последнюю запятую с помощью расширения параметра:
$ printf -v tmpvar "%s," {1..5}; echo "${tmpvar%,}"
1,2,3,4,5
Или с "$*"
, которое соединяется с использованием первого символа IFS
. Это уничтожает глобальное состояние, но этого можно легко избежать, запустив его в подоболочке или в функции сlocal IFS
:
$ IFS=,; set -- {1..5}; echo "$*";
1,2,3,4,5
Если ограничения указаны в переменных, вероятно, проще всего сделать это вручную с помощью цикла, поскольку вы не можете использовать переменные в качестве конечных точек в диапазоне раскрытия фигурных скобок. Опять же, верхний предел находится в частном случае:
a=1; b=5
for (( i=a ; i<b ; i++ )); do
printf "$i,";
done;
printf "$b\n"
Если вы разрешаете использовать пробелы вместе с запятыми, попробуйте
$ echo {1..5},
1, 2, 3, 4, 5,