como fazer uma linha de comando grande quebrada em duas linhas ser executada como uma única linha dentro de um script

1

Estou usando o IBM z / OS390 e estou usando o shell OMVS. Eu não tenho "vi" instalado, então eu uso "oedit". Se eu tentar inicializar o app.jar straigh do shell OMVS, ele funciona perfeitamente. Quero dizer, se eu alcançar o diretório java e iniciar o aplicativo de lá com os dois comandos abaixo, ele funciona 100%.

cd /WebSphere/was85/mycel/mynode/AppServer/java_1.7_64/bin
./java -cp /usr/my.jar com/com.my_comapny_witt_entire_name/myMain 

Eu criei um arquivo de script via OEDIT e adicionei as duas linhas. O segundo foi quebrado em duas linhas. Infelizmente eu estou recebendo este erro, obviamente, porque durante a execução, a segunda linha de comando foi tratada como diferentes duas linhas.

$ ./script_boot_app
Error: Could not find or load main class com.my_comapny_witt_entire_name.
/myMain: ./script_boot_app 3: FSUM7351 not found

Provavelmente, se o caminho e os nomes dos pacotes java fossem menores o suficiente para caber em uma linha, isso não aconteceria. Então, minha pergunta é: como posso usar o OEDIT e garantir que várias linhas serão tratadas como apenas uma linha exatamente como eu fiz ao executar o comando direto do shell? Ao digitar straigh no shell OMVS e o fim da linha é alcançado, naturalmente continuo na linha abaixo e ele é executado como uma única linha de comando. Como posso fazer o mesmo dentro de um script criado na ferramenta OEDIT?

    
por Jim C 31.05.2016 / 04:28

3 respostas

0

O cd não deve ser obrigatório. A linha a seguir deve fazer o mesmo.

/WebSphere/was85/mycel/mynode/AppServer/java_1.7_64/bin/java -cp \
    /usr/my.jar com/com.my_comapny_witt_entire_name/myMain 

Eu quebrei a linha de comando em duas linhas usando a continuação da contrabarra. Não deve haver caracteres entre a barra invertida e a nova linha para continuação do trabalho.

Uma alternativa é incluir o diretório bin Java na variável PATH, antes de qualquer diretório que contenha java. O comando which java deve informar qual java será usado.

PATH=/WebSphere/was85/mycel/mynode/AppServer/java_1.7_64/bin:$PATH
java -cp /usr/my.jar com/com.my_comapny_witt_entire_name/myMain 
    
por 31.05.2016 / 16:17
1

Para começar, é melhor sempre verificar o status de saída de cd , então

cd /WebSphere/was85/mycel/mynode/AppServer/java_1.7_64/bin && ./java -cp /usr/my.jar com/com.my_comapny_witt_entire_name/myMain

cmd1 && cmd2 significa executar cmd2 se cmd1 tiver êxito.

Agora, eu suspeito que o seu problema aqui é que esse script não está sendo interpretado pelo shell OMVS (que deve ser um shell POSIX, então deve funcionar na interpretação dessas duas linhas).

Ou, claro, pode ser por causa desses erros de digitação ( comapny , witt ) quando o comando java é encontrado, o que implicaria que, para ser encontrado, também existe um no diretório atual como em /WebSphere/was85/mycel/mynode/AppServer/java_1.7_64/bin

    
por 31.05.2016 / 07:51
0

Apenas uma barra invertida

cd /WebSphere/was85/mycel/mynode/AppServer/java_1.7_64/bin ./java -cp \
/usr/my.jar com/com.my_comapny_witt_entire_name/myMain
    
por 31.05.2016 / 06:25