Em primeiro lugar, você deve estar citando suas variáveis:
JAVA_OPTS="-Xms1024m -Xmx1024m"
Como a variável não foi citada, no seu comando original, apenas JAVA_OPTS=-Xms1024m
foi interpretado como atribuição de variável e -Xmx1024m
como um nome de comando. Isso geralmente é chamado de configuração de variável de ambiente para comando. Por exemplo,
LC_ALL=C date +%s
modificaria o ambiente de date
com a configuração LC_ALL=C
(que está executando date
com a localidade inglesa, mesmo que você tenha outra coisa definida). Observe a diferença aqui - LC_ALL = C não tem espaços, então a divisão de palavras não ocorre, que é o que está acontecendo no caso de JAVA_OPTS=-Xms1024m -Xmx1024m
Em segundo lugar, o traço significa estilo curto de opções. Há também um estilo longo, por exemplo, bash --posix
ou ls --format=long
. Por que traço? Convenção histórica. Deve-se notar que o padrão POSIX requer apenas versões curtas dos argumentos da linha de comando.