Aqui estão algumas informações básicas do Unix. Não são fornecidos muitos detalhes específicos de "El Capitan", mas não devem ser necessários para que as coisas funcionem. (Eu entendo que uma atualização para "El Capitan" quebrou as coisas. Talvez tenha mudado o que está no seu caminho, ou alterou algumas permissões. A seguir estão os detalhes sobre como fazer as coisas funcionarem.
No DOS, um arquivo de lote é um arquivo de texto que termina com ".BAT" (sem distinção entre maiúsculas e minúsculas, portanto, ".bat" também funciona). O Microsoft Windows segue a tradição do DOS. Cada linha no arquivo de lote é um comando a ser executado a partir do interpretador de comandos.
No Unix, incluindo o Mac OS X, um arquivo "shell script" apropriado deve ter um cabeçalho adequado e ter as permissões adequadas. Então, após o cabeçalho, cada linha no arquivo de lote é um comando a ser executado a partir do interpretador de comandos.
Observe que essas descrições são basicamente as mesmas. Principalmente, a maior parte do arquivo de script é apenas uma lista de comandos a serem executados. Comandos que são os mesmos entre DOS e Unix, como "cd ..", ou os nomes de arquivos executáveis dentro do PATH, podem funcionar igualmente bem com ambos os tipos de arquivos.
Se você tivesse um arquivo de script Unix que dizia: #!/bin/sh
@Echo Off
echo hello
cd .
more < readme.txt
Em seguida, a primeira linha do arquivo causaria um erro inofensivo no DOS / Windows, a segunda linha do arquivo causaria uma mensagem de erro harmelss no Unix, e o restante do arquivo poderia funcionar de forma idêntica nos dois ambientes.
Se isso realmente funciona bem para você, ou não, pode depender muito dos comandos que você usa. Por exemplo, " cd bin
" pode funcionar bem com ambos os ambientes, mas o DOS / Windows usa uma barra invertida como separador de diretório enquanto o Unix usa uma barra invertida. Então, alguns comandos podem não funcionar bem.
A melhor maneira de prever o quão bem o seu arquivo em lote específico funcionaria bem ou não seria se soubéssemos o conteúdo do arquivo em lote. Daí porque comentário do barlop perguntado sobre o conteúdo do arquivo de lote. / p>
Em relação à sua pergunta (de um dos seus comentários) em qual extensão usar: No DOS / Windows, a resposta é ".BAT" (qualquer quantidade de letras minúsculas é boa, então ".bat" também está bom). Unix, os padrões mais comuns são "nenhum" (sem extensão) ou " .sh
". No entanto, no Unix, a extensão realmente não importa significativamente. O que importa é se o arquivo tem as permissões necessárias e, possivelmente, se inicia com o cabeçalho apropriado. Portanto, verifique se essas coisas estão certas. (O cabeçalho é a primeira linha mostrada no meu exemplo anterior. As permissões podem ser definidas usando " chmod a+x filename.bat
" mas, é claro, especifique o local real do nome do arquivo.) Quando você executa o arquivo no Unix, certifique-se de especificar o nome do arquivo inteiro do arquivo de script, incluindo a extensão ".bat". (Se você não gosta de fazer isso, simplesmente crie um link simbólico, tendo um link simbólico chamado "gonow" para "gonow.bat" (ou o que for apropriado).
A outra maneira de fazer isso no Unix é executar o arquivo .BAT dentro de outro software que é semelhante ao DOS. por exemplo, COMMAND.COM dentro do Wine, ou talvez o CMD.EXE dentro do WINE, ou outras variantes do Wine como o Crossover, ou outro software como DOSBox ou DOSemu. Se você fizer isso, use este software projetado para funcionar como o DOS e, em seguida, esse software poderá executar o arquivo sem exigir que você especifique a extensão ".bat".
Outra alternativa pode ser simplesmente usar um arquivo Shell Script que execute Java (desde o conteúdo do arquivo em lote, mencionado em outra parte, mostrar Java sendo executado) e ignorar a tentativa de usar um arquivo que termine com o ".bat" extensão. (Portanto, não seria um arquivo .bat, mas seria um script de shell ou um link simbólico).