Я пытаюсь запустить Casandra nodetool и получаю предупреждения из сценария .sh.
[root@d11ca4cc-fa95-c8a9-e133-e64c434f0e6f ~]# nodetool status
/opt/local/share/cassandra/bin/nodetool[53]: .[97]: [: <: unknown operator
/opt/local/share/cassandra/bin/nodetool[53]: .[102]: [: <: unknown operator
prtconf: devinfo facility not available
/opt/local/share/cassandra/bin/nodetool[53]: .[222]: [: <: unknown operator
В строке 53 nodetool вызывает cassandra-env.sh.
В cassandra-env.sh (строки 97, 102, 222):
...
97 if [ "$JVM_VERSION" \< "1.7" ] ; then
...
if [ "$JVM_VERSION" \< "1.8" ] && [ "$JVM_PATCH_VERSION" -lt "25" ] ; then
...
if { [ "$JVM_VERSION" \> "1.7" ] && [ "$JVM_VERSION" \< "1.8.0" ] && [ "$JVM_PATCH_VERSION" -ge "60" ]; } || [ "$JVM_VERSION" \> "1.8" ] ; then
...
Я не уверен, в чем проблема, но мне кажется, что это оператор \>
или \<
не распознается. Какой-нибудь совет?
У меня нет под рукой системы Solaris, но похоже, что сценарий полагается на то, что / bin / sh является ссылкой на / bin / bash, и поэтому использует синтаксис bash, который sh не понимает.
Как вы обнаружили, изменение shebang на #! / Bin / bash устраняет проблему.
Вы должны отправить отчет об ошибке, и мы надеемся, что сопровождающие исправят его, чтобы сделать его менее ориентированным на Linux.